Proof-of-concept code of an optimal implementation of the lambda-calculus
per the syntactic readback (in 3 phases: unwind, scope remove, loop cut)
as described in Section 5 of the paper Lambdascope.
The concept proven by this code is that the syntactic readback is way worse than the semantic readback,
as expected. The default example in Main.java is
c2 (c2 c2) (for c2 the Church numeral 2)
which evaluates to c16 (the Church numeral of 16), as expected