Graded Monads #
Type classes for functors, applicatives, monads, and alternatives indexed by a monoidal grade. Composition multiplies grades via the monoid operation.
@[reducible, inline]
A type family indexed by a grade and a type.
Equations
- GradedType G = (G → Type → Type)
Instances For
Graded monad.
Instances
class
GAlternative
{G : Type}
[Monoid G]
[AddSemigroup G]
[Zero G]
(f : GradedType G)
extends GApplicative f :
Type 1
Graded alternative.
- gempty {α : Type} : f 0 α
Instances
Equations
- «term_<$>ᵍ_» = Lean.ParserDescr.trailingNode `«term_<$>ᵍ_» 100 101 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <$>ᵍ ") (Lean.ParserDescr.cat `term 100))
Instances For
Equations
- «term_<$ᵍ_» = Lean.ParserDescr.trailingNode `«term_<$ᵍ_» 100 101 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <$ᵍ ") (Lean.ParserDescr.cat `term 100))
Instances For
Equations
- «term_<*>ᵍ_» = Lean.ParserDescr.trailingNode `«term_<*>ᵍ_» 60 60 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <*>ᵍ ") (Lean.ParserDescr.cat `term 61))
Instances For
Equations
- «term_>>=ᵍ_» = Lean.ParserDescr.trailingNode `«term_>>=ᵍ_» 55 55 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " >>=ᵍ ") (Lean.ParserDescr.cat `term 56))
Instances For
Equations
- «term_<|>ᵍ_» = Lean.ParserDescr.trailingNode `«term_<|>ᵍ_» 30 30 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <|>ᵍ ") (Lean.ParserDescr.cat `term 31))
Instances For
class
LawfulGApplicative
{G : Type}
[Monoid G]
(f : GradedType G)
[GApplicative f]
extends LawfulGFunctor f :
Instances
class
LawfulGMonad
{G : Type}
[Monoid G]
(m : GradedType G)
[GMonad m]
extends LawfulGApplicative m :
Instances
class
LawfulGAlternative
{G : Type}
[Monoid G]
[AddMonoid G]
(f : GradedType G)
[GAlternative f]
extends LawfulGApplicative f :
Instances
class
LawfulGMonadPlus
{G : Type}
[Monoid G]
[AddMonoid G]
(m : GradedType G)
[GAlternative m]
[GMonad m]
extends LawfulGAlternative m :