effect-monad

Embeds effect systems and program logics into Haskell using graded monads and parameterised monads

Latest on Hackage:0.8.1.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed and maintained by Dominic Orchard

Provides the graded monad structure to Haskell via Control.Effect with a number of analogs of familiar monads and some new things: Reader, Writer, State, Maybe, Counter, Update and a wrapper over normal monads (Control.Effect.Monad). This provides a way to embed effect systems into Haskell. For more information see the paper "Embedding effect systems in Haskell" by Orchard and Petricek http://dorchard.co.uk/publ/haskell14-effects.pdf (Haskell, 2014) Also provides the parameterised monad structure due to Atkey in Control.Effect.Parameterised along with some instances: AtomicState, SafeFiles, ExtensibleState and the examples in https://github.com/dorchard/effect-monad/tree/master/examples. (note, this package was previously called ixmonad until September 2014).