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; } }