Portability | portable |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | Safe-Inferred |
This module provides the Bound
class, for performing substitution into
things that are not necessarily full monad transformers.
Documentation
Instances of Bound
may or may not be monad transformers.
If they are, then m
is required to hold, and is
in fact the default definition. If it is not a >>>=
f ≡ m >>=
lift
.
fMonadTrans
instance, then
you have greater flexibility in how to implement this class.
This is useful for types like expression lists, case alternatives, schemas, etc. that may not be expressions in their own right, but often contain expressions.