Added a better atom mechanism
Added MonadPlus implementation; added error_to_nothing decorator
filled in more of the monad methods