A monadic interpreter written in Haskell