*Parametric effects monads* (introduced by Katsumata in his POPL 2014
paper, and elsewhere called 'indexed monads', see
http://www.cl.cam.ac.uk/~dao29/ixmonad/) 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.
For more information, see talk slides and papers here:
http://www.cl.cam.ac.uk/~dao29/ixmonad/
This is also available on hackage (http://hackage.haskell.org/package/ixmonad)
so you can get this by doing:
cabal install ixmonad