prepared a new module structure
split Eval apart
added a monad for evaluation
attempted to flesh out monad
monad carries state (though not much right now)
added termination semantics for double exceptions