The repl now supports assignment of the form

    :var = (\x.x)

The next term entered into the repl, lets call it `t`, will now be wrapped like this:

    (\var.t) (\x.x)

This works for arbitrarily many assignments. In this way the underlying langauge which gets evaluated is still pure lambda calculus. The assignments are actually just the REPL helping you write some boilerplate code.