- name : Aesop.RuleName
- indexingMode : Aesop.IndexingMode
- pattern? : Option Aesop.RulePattern
- extra : α
- tac : Aesop.RuleTacDescr
Instances For
Equations
- Aesop.instInhabitedRule = { default := { name := default, indexingMode := default, pattern? := default, extra := default, tac := default } }
Equations
- Aesop.Rule.instBEq = { beq := fun (r s : Aesop.Rule α) => r.name == s.name }
Equations
- Aesop.Rule.instOrd = { compare := fun (r s : Aesop.Rule α) => compare r.name s.name }
Equations
- Aesop.Rule.instHashable = { hash := fun (r : Aesop.Rule α) => hash r.name }
Instances For
Equations
- r.compareByName s = r.name.compare s.name
Instances For
Equations
- r.compareByPriorityThenName s = (r.compareByPriority s).then (r.compareByName s)
Instances For
@[inline]
Equations
- Aesop.Rule.map f r = { name := r.name, indexingMode := r.indexingMode, pattern? := r.pattern?, extra := f r.extra, tac := r.tac }
Instances For
@[inline]
def
Aesop.Rule.mapM
{m : Type → Type 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, pattern? := r.pattern?, extra := __do_lift, tac := r.tac }