Refactor to use more liftM
More liftM refactoring
Fix evaluator tests
Extract types into a separate module
Fix newtype wrappers
Fix parser to use the new type entities