operational icon indicating copy to clipboard operation
operational copied to clipboard

Implement monads by specifying instructions and their desired operational semantics.

Operational is a tiny library for implementing monads by specifying the primitive instructions and their operational semantics. The monad laws will hold automatically. It can also be used to define monad transformers, and the lifting laws are, again, automatic.

It is based on the article The Operational Monad Tutorial, published in Issue 15 of The Monad.Reader.

For more, see the project website.


Sources and inspiration for this library include Chuan-kai Lin's unimo paper, John Hughes 95, and Ryan Ingram's MonadPrompt package.