|Maintainer||Edward Kmett <firstname.lastname@example.org>|
This module provides the
Bound class, for performing substitution into
things that are not necessarily full monad transformers.
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
MonadTrans 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.