This resembles the pure State monad.
However, State in transformers is a StateT
and mtl is not Haskell 98.
I hope I have the more natural parameter order for evaluate
in contrast to mtl
and transformers
.
However, it is different from the parameter order of run
.