Documentation

Aesop.Rule.Basic

structure Aesop.Rule (α : Type) :
Instances For
    instance Aesop.instInhabitedRule :
    {a : Type} → [inst : Inhabited a] → Inhabited (Aesop.Rule a)
    Equations
    • Aesop.instInhabitedRule = { default := { name := default, indexingMode := default, extra := default, tac := default } }
    Equations
    • Aesop.Rule.instBEqRule = { beq := fun r s => r.name == s.name }
    Equations
    • Aesop.Rule.instOrdRule = { compare := fun r s => compare r.name s.name }
    Equations
    • Aesop.Rule.instHashableRule = { hash := fun r => hash r.name }
    Equations
    Instances For
      Equations
      Instances For
        Equations
        Instances For
          @[inline]
          def Aesop.Rule.map {α : Type} {β : Type} (f : αβ) (r : Aesop.Rule α) :
          Equations
          • Aesop.Rule.map f r = { name := r.name, indexingMode := r.indexingMode, extra := f r.extra, tac := r.tac }
          Instances For
            @[inline]
            def Aesop.Rule.mapM {m : TypeType u_1} {α : Type} {β : Type} [Monad m] (f : αm β) (r : Aesop.Rule α) :
            m (Aesop.Rule β)
            Equations
            • Aesop.Rule.mapM f r = do let __do_lift ← f r.extra pure { name := r.name, indexingMode := r.indexingMode, extra := __do_lift, tac := r.tac }
            Instances For