Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects.
Haskell
103
179 commits
updated Oct 21, 2025
Graded monads are a generalisation of monads where, from a functional
programming perspective, a monadic type constructor is annotated
(indexed) by another type representing effect information that
explains the effects of a computation, i.e., values of type M r a
are effectul computations of values of type a with effects r. They
provide a way to give finer-grained information about impurity and
capture a greater class of effectul computations that normal monads.
This library is based on the paper "Embedding Effect Systems in Haskell" (Orchard, Petricek, Haskell 2014). For more information, see talk slides and papers here:
This is also available on hackage (http://hackage.haskell.org/package/effect-monad) so you can get this by doing:
cabal install effect-monad
178 commits
1 commits
Haskell
100.0%
Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects.
Haskell
103
179 commits
updated Oct 21, 2025
Graded monads are a generalisation of monads where, from a functional
programming perspective, a monadic type constructor is annotated
(indexed) by another type representing effect information that
explains the effects of a computation, i.e., values of type M r a
are effectul computations of values of type a with effects r. They
provide a way to give finer-grained information about impurity and
capture a greater class of effectul computations that normal monads.
This library is based on the paper "Embedding Effect Systems in Haskell" (Orchard, Petricek, Haskell 2014). For more information, see talk slides and papers here:
This is also available on hackage (http://hackage.haskell.org/package/effect-monad) so you can get this by doing:
cabal install effect-monad
178 commits
1 commits
Haskell
100.0%