@[instance_reducible, instance 100]
instance Lake.instAlternativeOfMonadOfMonadExceptOfPUnit_lake {m : Type u_1 → Type u_2} [Monad m] [MonadExceptOf PUnit m] :
@[instance_reducible, instance 10000]
instance Lake.instMonadLiftTOfMonadLift_lake {α : Type u_1 → Type u_2} {β : Type u_1 → Type u_3} [MonadLift α β] :
MonadLiftT α β
Ensure direct lifts are preferred over indirect ones.
Equations
- Lake.instMonadLiftTOfMonadLift_lake = { monadLift := fun {α_1 : Type ?u.3} => MonadLift.monadLift }
@[instance_reducible, instance 100]
@[instance_reducible, instance 100]
@[instance_reducible, instance 100]
instance Lake.instMonadLiftTExceptOfPureOfMonadExceptOf_lake {m : Type u_1 → Type u_2} {ε : Type u_3} [Pure m] [MonadExceptOf ε m] :
MonadLiftT (Except ε) m
Equations
- Lake.instMonadLiftTExceptOfPureOfMonadExceptOf_lake = { monadLift := fun {α : Type ?u.3} (x : Except ε α) => match x with | Except.ok a => pure a | Except.error e => throw e }
@[instance_reducible, instance 100]
instance Lake.instMonadLiftTReaderTOfMonadOfMonadReaderOf_lake {m : Type u_1 → Type u_2} {ρ : Type u_1} {n : Type u_1 → Type u_3} [Monad m] [MonadReaderOf ρ m] [MonadLiftT n m] :
MonadLiftT (ReaderT ρ n) m
@[instance_reducible, instance 100]
instance Lake.instMonadLiftTStateTOfMonadOfMonadStateOf_lake {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_reducible, instance 100]
instance Lake.instMonadLiftTOptionTOfMonadOfAlternative_lake {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
@[instance_reducible, instance 100]
instance Lake.instMonadLiftTExceptTOfMonadOfMonadExceptOf_lake {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
@[instance_reducible, instance 100]
instance Lake.instMonadLiftTEIOOfMonadOfMonadExceptOfOfBaseIO_lake {m : Type → Type u_1} {ε : Type} [Monad m] [MonadExceptOf ε m] [MonadLiftT BaseIO m] :
MonadLiftT (EIO ε) m