1 2 3 4 5
# Intermediate code generation - Put symbol table in the reader monad and it to the stack or use the state monad for everything. - Add errors handling to the monad stack.