Monad relations #
class
LawfulMonadRelation
(m : Type u → Type v)
(n : Type u → Type w)
[Monad m]
[Monad n]
[MonadRelation m n]
:
Instances
instance
MonadRelation.instOfMonadLiftT
{m : Type u_1 → Type u_2}
{n : Type u_1 → Type u_3}
[MonadLiftT m n]
:
MonadRelation m n
A (transitive) monad lift defines a monad relation via its graph
Equations
instance
MonadRelation.instOfLawfulMonadLiftT
{m : Type u_1 → Type u_2}
{n : Type u_1 → Type u_3}
[Monad m]
[Monad n]
[MonadLiftT m n]
[LawfulMonadLiftT m n]
:
A (transitive) lawful monad lift defines a lawful monad relation via its graph
class
LawfulMonadRelationHom
(m₁ : Type u → Type v₁)
(n₁ : Type u → Type w₁)
(m₂ : Type u → Type v₂)
(n₂ : Type u → Type w₂)
[MonadRelation m₁ n₁]
[MonadRelation m₂ n₂]
[MonadRelationHom m₁ n₁ m₂ n₂]
:
- monadRel_hom {α : Type u} {ma : m₁ α} {na : n₁ α} (h : monadRel ma na) : monadRel (monadRelHomFst n₁ n₂ ma) (monadRelHomSnd m₁ m₂ na)