operational
operational copied to clipboard
Implement monads by specifying instructions and their desired operational semantics.
`operational` will need code changes: ``` Building library for operational-0.2.4.1.. [1 of 1] Compiling Control.Monad.Operational ( src/Control/Monad/Operational.hs, dist/build/Control/Monad/Operational.o, dist/build/Control/Monad/Operational.dyn_o ) src/Control/Monad/Operational.hs:213:14: error: • Variable not in scope: liftM :: (a...
The idea behind `MFunctor` is that `ProgramT` and `ProgramViewT` should be compatible with functions like `lift :: MonadTrans t => m x -> t m x`, `liftIO :: MonadIO m...
``` haskell pattern RETURN :: a -> Program instr a pattern RETURN x Return x) pattern BIND :: instr a -> (a -> Program instr b) -> Program instr b...
I keep needing this more general version of `interpretWithMonadT`. Possibly it is useful for other library users as well. The idea is to "replace" a `ProgramT` layer by another transformer.