the evaluation environment is now passed in a monad
environment of a throw is now determined by monad
more elegant double-exception propagation
rewrote the lexer; syntax error reporting is now more accurate
fallthrough/break/&c are now only accepted in admissble lexical environments;
fixed some bugs regarding optinoal colons
current expression under evaluatin is now tracked in the monad