AssignmentTest.java
package com.acme.imperative;

import church.lang.ByteStream;
import church.lang.operators.Streams.$$encode;
import church.primitives.Integers;
import church.primitives.Objects;

import static church.lang.operators.Streams.output;

@SuppressWarnings("unchecked")
public class AssignmentTest {
    private static final $$encode<ByteStream, String>  $S0 = Objects::$encode;
    private static final $$encode<ByteStream, Integer> $S1 = Integers::$encode;

    public static void main(String[] args) {
        int x = 1;
        $S0.$encode($S1.$encode($S0.$encode(output, "x = "), x), "\n");
        x = 2;
        $S0.$encode($S1.$encode($S0.$encode(output, "x = "), x), "\n");
        x += 3;
        $S0.$encode($S1.$encode($S0.$encode(output, "x = "), x), "\n");
        assert x == 5;
    }

}