Monad #
Attributes #
- ext
- functor_norm
- monad_norm
Implementation Details #
Set of rewrite rules and automation for monads in general and
ReaderT
, StateT
, ExceptT
and OptionT
in particular.
The rewrite rules for monads are carefully chosen so that simp with functor_norm
will not introduce monadic vocabulary in a context where
applicatives would do just fine but will handle monadic notation
already present in an expression.
In a context where monadic reasoning is desired simp with monad_norm
will translate functor and applicative notation into monad notation
and use regular functor_norm
rules as well.
Tags #
functor, applicative, monad, simp
def
ReaderT.equiv
{ρ₁ α₁ : Type u₀}
{ρ₂ α₂ : Type u₁}
{m₁ : Type u₀ → Type v₀}
{m₂ : Type u₁ → Type v₁}
(F : (ρ₁ → m₁ α₁) ≃ (ρ₂ → m₂ α₂))
:
reduce the equivalence between two reader monads to the equivalence between their respective function spaces
Equations
- ReaderT.equiv F = F