Use PrimMonad/MutVar for mutable variables
Implement declaration, function application

Support recursion, mutual recursion