Rewrote the interpreter with monad transformer
The REPL becomes monadic now.