instance
Lake.instInhabitedEquipT
{ρ : Type u}
{m : Type v → Type w}
{α : Type v}
[Inhabited (m α)]
:
Inhabited (Lake.EquipT ρ m α)
@[inline]
def
Lake.EquipT.run
{ρ : Type u}
{m : Type v → Type w}
{α : Type v}
(self : Lake.EquipT ρ m α)
(r : ρ)
:
m α
Instances For
@[inline]
def
Lake.EquipT.map
{ρ : Type u}
{m : Type v → Type w}
[Functor m]
{α β : Type v}
(f : α → β)
(self : Lake.EquipT ρ m α)
:
Lake.EquipT ρ m β
Equations
- Lake.EquipT.map f self fetch = f <$> self fetch
Instances For
instance
Lake.EquipT.instFunctor
{ρ : Type u}
{m : Type v → Type w}
[Functor m]
:
Functor (Lake.EquipT ρ m)
@[inline]
def
Lake.EquipT.pure
{ρ : Type u}
{m : Type v → Type w}
[Pure m]
{α : Type v}
(a : α)
:
Lake.EquipT ρ m α
Instances For
@[inline]
def
Lake.EquipT.compose
{ρ : Type u}
{m : Type v → Type w}
{α₁ α₂ β : Type v}
(f : m α₁ → (Unit → m α₂) → m β)
(x₁ : Lake.EquipT ρ m α₁)
(x₂ : Unit → Lake.EquipT ρ m α₂)
:
Lake.EquipT ρ m β
Instances For
@[inline]
def
Lake.EquipT.seq
{ρ : Type u}
{m : Type v → Type w}
[Seq m]
{α β : Type v}
:
Lake.EquipT ρ m (α → β) → (Unit → Lake.EquipT ρ m α) → Lake.EquipT ρ m β
Equations
- Lake.EquipT.seq = Lake.EquipT.compose Seq.seq
Instances For
instance
Lake.EquipT.instApplicative
{ρ : Type u}
{m : Type v → Type w}
[Applicative m]
:
Applicative (Lake.EquipT ρ m)
Equations
- Lake.EquipT.instApplicative = Applicative.mk
@[inline]
def
Lake.EquipT.bind
{ρ : Type u}
{m : Type v → Type w}
[Bind m]
{α β : Type v}
(self : Lake.EquipT ρ m α)
(f : α → Lake.EquipT ρ m β)
:
Lake.EquipT ρ m β
Equations
- self.bind f fetch = do let a ← self fetch f a fetch
Instances For
instance
Lake.EquipT.instMonad
{ρ : Type u}
{m : Type v → Type w}
[Monad m]
:
Monad (Lake.EquipT ρ m)
Equations
- Lake.EquipT.instMonad = Monad.mk
instance
Lake.EquipT.instMonadLift
{ρ : Type u}
{m : Type v → Type w}
:
MonadLift m (Lake.EquipT ρ m)
instance
Lake.EquipT.instMonadFunctor
{ρ : Type u}
{m : Type v → Type w}
:
MonadFunctor m (Lake.EquipT ρ m)
@[inline]
def
Lake.EquipT.failure
{ρ : Type u}
{m : Type v → Type w}
[Alternative m]
{α : Type v}
:
Lake.EquipT ρ m α
Instances For
@[inline]
def
Lake.EquipT.orElse
{ρ : Type u}
{m : Type v → Type w}
[Alternative m]
{α : Type v}
:
Lake.EquipT ρ m α → (Unit → Lake.EquipT ρ m α) → Lake.EquipT ρ m α
Equations
- Lake.EquipT.orElse = Lake.EquipT.compose Alternative.orElse
Instances For
instance
Lake.EquipT.instAlternative
{ρ : Type u}
{m : Type v → Type w}
[Alternative m]
:
Alternative (Lake.EquipT ρ m)
Equations
- Lake.EquipT.instAlternative = Alternative.mk (fun {α : Type ?u.27} => Lake.EquipT.failure) fun {α : Type ?u.27} => Lake.EquipT.orElse
@[inline]
def
Lake.EquipT.throw
{ρ : Type u}
{m : Type v → Type w}
{ε : Type v}
[MonadExceptOf ε m]
{α : Type v}
(e : ε)
:
Lake.EquipT ρ m α
Instances For
@[inline]
def
Lake.EquipT.tryCatch
{ρ : Type u}
{m : Type v → Type w}
{ε : Type v}
[MonadExceptOf ε m]
{α : Type v}
(self : Lake.EquipT ρ m α)
(c : ε → Lake.EquipT ρ m α)
:
Lake.EquipT ρ m α
Instances For
instance
Lake.EquipT.instMonadExceptOf
{ρ : Type u}
{m : Type v → Type w}
(ε : Type v)
[MonadExceptOf ε m]
:
MonadExceptOf ε (Lake.EquipT ρ m)
Equations
- Lake.EquipT.instMonadExceptOf ε = { throw := fun {α : Type ?u.32} => Lake.EquipT.throw, tryCatch := fun {α : Type ?u.32} => Lake.EquipT.tryCatch }
@[always_inline]
instance
Lake.EquipT.instMonadFinallyOfMonad
{ρ : Type u}
{m : Type v → Type w}
[MonadFinally m]
[Monad m]
:
MonadFinally (Lake.EquipT ρ m)
Equations
- One or more equations did not get rendered due to their size.