instance
Lake.instMonadLiftTExcept
{m : Type u_1 → Type u_2}
{ε : Type u_3}
[Pure m]
[MonadExceptOf ε m]
:
MonadLiftT (Except ε) m
Equations
- Lake.instMonadLiftTExcept = { monadLift := fun {α} x => match x with | Except.ok a => pure a | Except.error e => throw e }
instance
Lake.instMonadLiftTReaderT
{m : Type u_1 → Type u_2}
{ρ : Type u_1}
{n : Type u_1 → Type u_3}
[Bind m]
[MonadReaderOf ρ m]
[MonadLiftT n m]
:
MonadLiftT (ReaderT ρ n) m
instance
Lake.instMonadLiftTStateT
{m : Type u_1 → Type u_2}
{σ : Type u_1}
{n : Type u_1 → Type u_3}
[Monad m]
[MonadStateOf σ m]
[MonadLiftT n m]
:
MonadLiftT (StateT σ n) m
Equations
- One or more equations did not get rendered due to their size.
instance
Lake.instMonadLiftTOptionT
{m : Type u_1 → Type u_2}
{n : Type u_1 → Type u_3}
[Monad m]
[Alternative m]
[MonadLiftT n m]
:
MonadLiftT (OptionT n) m
Equations
- Lake.instMonadLiftTOptionT = { monadLift := fun {α} act => liftM (OptionT.run act) >>= liftM }
instance
Lake.instMonadLiftTExceptT
{m : Type u_1 → Type u_2}
{ε : Type u_1}
{n : Type u_1 → Type u_3}
[Monad m]
[MonadExceptOf ε m]
[MonadLiftT n m]
:
MonadLiftT (ExceptT ε n) m
Equations
- Lake.instMonadLiftTExceptT = { monadLift := fun {α} act => liftM (ExceptT.run act) >>= liftM }
instance
Lake.instMonadLiftTEIO
{m : Type → Type u_1}
{ε : Type}
[Monad m]
[MonadExceptOf ε m]
[MonadLiftT BaseIO m]
:
MonadLiftT (EIO ε) m
Equations
- Lake.instMonadLiftTEIO = { monadLift := fun {α} act => liftM (EIO.toBaseIO act) >>= liftM }
instance
Lake.instMonadLiftTOptionIO
{m : Type → Type u_1}
[Monad m]
[Alternative m]
[MonadLiftT BaseIO m]
:
Equations
- Lake.instMonadLiftTOptionIO = { monadLift := fun {α} act => liftM (Lake.OptionIO.toBaseIO act) >>= liftM }