ArrayStreams0.java
package com.acme.javaInterop;

import church.lang.Array;
import church.lang.Array.$WriteElementsToStream;
import church.lang.Array.$WriteEmbracedElementsToStream;
import church.lang.ByteStream;
import church.lang.operators.Streams.$$encode;
import church.primitives.Objects;

import static church.lang.Array.array;
import static church.lang.System.stream;
import static church.lang.operators.Streams.output;

@SuppressWarnings("unchecked")
public class ArrayStreams0 {
    private static final $$encode<ByteStream, String>                                       $S0 = Objects::$encode;
    private static final $$encode<ByteStream, Object>                                       $S1 = Objects::$encode;
    private static final $WriteElementsToStream<ByteStream, Object>                         $S2 = Array.writeElementsToStream($S1, $S0);
    private static final $WriteEmbracedElementsToStream<ByteStream, Object, String, String> $S3 = Array.writeEmbracedElementsToStream($S0, $S2, $S0);
    private static final $$encode<ByteStream, Object[]>                                     $S4 = Array.$encode($S3);

    public static void main(String[] args) {
        String[]                         a1 = array("Apple", "Pear");
        java.util.stream.Stream<String>  s1 = stream(a1);
        java.util.stream.Stream<Integer> s2 = s1.map(e -> e.length());
        Object[]                         a2 = s2.toArray();
        $S0.$encode($S4.$encode(output, a2), "\n");
    }

}