Morphisms Between Monads #
Basic definitions of maps between monads parameterized over any possible output type.
This is implemented with more constrained universes as m ⟶ n in mathlib category theory,
but this gives definitions more standardized to a cs context.
TODO: Evaluate more fine-grained PureHom/BintHom/etc, with Class versions as well.
Probably should be in the context of upstreaming things.
A MonadHom m n bundles a monad map m ⟶ n (represented as a NatHom) with proofs that
it respects the bind and pure operations in the underlying monad.
Instances For
Similar to AddHomClass but for MonadHom. This becomes more important if we start defining
a hierarchy of these types (e.g. for AlternativeMonads).
Note that getting FunLike to work has some outParam challenges, may not be workable.
Instances
Construct a MonadHom from a lawful monad lift.