Documentation

PrimParser.GradedMonad.Basic

Graded Monads #

Type classes for functors, applicatives, monads, and alternatives indexed by a monoidal grade. Composition multiplies grades via the monoid operation.

@[reducible, inline]
abbrev GradedType (G : Sort u_1) :
Sort (max 2 u_1)

A type family indexed by a grade and a type.

Equations
Instances For
    class GFunctor {G : Type} (f : GradedType G) :

    Graded functor.

    • gmap {i : G} {α β : Type} (h : αβ) : f i αf i β
    Instances
      class GApplicative {G : Type} [Monoid G] (f : GradedType G) extends GFunctor f :

      Graded applicative.

      • gmap {i : G} {α β : Type} (h : αβ) : f i αf i β
      • gpure {α : Type} : αf 1 α
      • gseq {i j : G} {α β : Type} : f i (αβ)(Unitf j α)f (i * j) β
      Instances
        class GMonad {G : Type} [Monoid G] (m : GradedType G) extends GApplicative m :

        Graded monad.

        • gmap {i : G} {α β : Type} (h : αβ) : m i αm i β
        • gpure {α : Type} : αm 1 α
        • gseq {i j : G} {α β : Type} : m i (αβ)(Unitm j α)m (i * j) β
        • gbind {i j : G} {α β : Type} : m i α(αm j β)m (i * j) β
        Instances
          class GAlternative {G : Type} [Monoid G] [AddSemigroup G] [Zero G] (f : GradedType G) extends GApplicative f :

          Graded alternative.

          • gmap {i : G} {α β : Type} (h : αβ) : f i αf i β
          • gpure {α : Type} : αf 1 α
          • gseq {i j : G} {α β : Type} : f i (αβ)(Unitf j α)f (i * j) β
          • gempty {α : Type} : f 0 α
          • gchoice {α : Type} {i j : G} : f i αf j αf (i + j) α
          Instances
            def gcast {G : Type} {f : GradedType G} {i j : G} {α : Type} (h : i = j) (x : f i α) :
            f j α

            Cast the grade of a graded type

            Equations
            Instances For
              @[reducible, inline]
              abbrev gconst {G : Type} {f : GradedType G} [GFunctor f] {i : G} {α β : Type} (b : β) (x : f i α) :
              f i β

              Replace the result of a graded computation with a constant value.

              Equations
              Instances For
                class LawfulGFunctor {G : Type} (f : GradedType G) [GFunctor f] :
                Instances
                  Instances
                    class LawfulGMonad {G : Type} [Monoid G] (m : GradedType G) [GMonad m] extends LawfulGApplicative m :
                    Instances
                      Instances
                        Instances