fixed cons.last(), added 'define' monad, changed parser to generate monadic ASTs