Documentation

Init.Control.Basic

def Functor.mapRev {f : Type uType v} [inst : Functor f] {α : Type u} {β : Type u} :
f α(αβ) → f β
Equations
@[inline]
def Functor.discard {f : Type uType v} {α : Type u} [inst : Functor f] (x : f α) :
Equations
instance instOrElse (f : Type uType v) (α : Type u) [inst : Alternative f] :
OrElse (f α)
Equations
@[inline]
def guard {f : TypeType v} [inst : Alternative f] (p : Prop) [inst : Decidable p] :
Equations
@[inline]
def optional {f : Type uType v} [inst : Alternative f] {α : Type u} (x : f α) :
f (Option α)
Equations
class ToBool (α : Type u) :
Type u
  • toBool : αBool
Instances
Equations
@[macroInline]
def bool {β : Type u} {α : Type v} [inst : ToBool β] (f : α) (t : α) (b : β) :
α
Equations
@[macroInline]
def orM {m : Type uType v} {β : Type u} [inst : Monad m] [inst : ToBool β] (x : m β) (y : m β) :
m β
Equations
@[macroInline]
def andM {m : Type uType v} {β : Type u} [inst : Monad m] [inst : ToBool β] (x : m β) (y : m β) :
m β
Equations
@[macroInline]
def notM {m : TypeType v} [inst : Applicative m] (x : m Bool) :
Equations
class MonadControl (m : Type uType v) (n : Type uType w) :
Type (max (max (u + 1) v) w)
  • stM : Type uType u
  • liftWith : {α : Type u} → (({β : Type u} → n βm (stM β)) → m α) → n α
  • restoreM : {α : Type u} → m (stM α)n α
Instances
class MonadControlT (m : Type uType v) (n : Type uType w) :
Type (max (max (u + 1) v) w)
  • stM : Type uType u
  • liftWith : {α : Type u} → (({β : Type u} → n βm (stM β)) → m α) → n α
  • restoreM : {α : Type u} → stM αn α
Instances
instance instMonadControlT (m : Type u_1Type u_2) (n : Type u_1Type u_3) (o : Type u_1Type u_4) [inst : MonadControl n o] [inst : MonadControlT m n] :
Equations
instance instMonadControlT_1 (m : Type uType v) [inst : Pure m] :
Equations
  • instMonadControlT_1 m = { stM := fun α => α, liftWith := fun {α} f => f fun {β} x => x, restoreM := fun {α} x => pure x }
@[inline]
def controlAt (m : Type uType v) {n : Type uType w} [s1 : MonadControlT m n] [s2 : Bind n] {α : Type u} (f : ({β : Type u} → n βm (stM m n β)) → m (stM m n α)) :
n α
Equations
@[inline]
def control {m : Type uType v} {n : Type uType w} [inst : MonadControlT m n] [inst : Bind n] {α : Type u} (f : ({β : Type u} → n βm (stM m n β)) → m (stM m n α)) :
n α
Equations
class ForM (m : Type uType v) (γ : Type w₁) (α : outParam (Type w₂)) :
Type (max (max (max (u + 1) v) w₁) w₂)
Instances