File: .lake/packages/aesop/Aesop/Script/OptimizeSyntax.lean

full_name: Aesop.SyntaxMap.instBEqKey
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: BEq Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key.ident
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.instHashableKey
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Hashable Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key.missing
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key.atom
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.instInhabitedKey
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Inhabited Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key.node
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key
code: inductive Key where
  | missing
  | node (kind : SyntaxNodeKind)
  | atom (val : String)
  | ident (val : Name) -- TODO what about macro scopes in val?
  deriving Inhabited, BEq, Hashable
goal: Type

full_name: Aesop.SyntaxMap.Key.instToString
code: instance : ToString Key 
goal: ToString Aesop.SyntaxMap.Key

full_name: Aesop.SyntaxMap.Key.ofSyntax
code: def ofSyntax : Syntax → Key
  
goal: Lean.Syntax → Aesop.SyntaxMap.Key

full_name: Aesop.instInhabitedSyntaxMap
code: structure SyntaxMap (α : Type _) where
  toPHashMap : PHashMap SyntaxMap.Key α
  deriving Inhabited
goal: {a : Type u_1} → Inhabited (Aesop.SyntaxMap a)

full_name: Aesop.SyntaxMap.toPHashMap
code: structure SyntaxMap (α : Type _) where
  toPHashMap : PHashMap SyntaxMap.Key α
  deriving Inhabited
goal: Lean.PHashMap Aesop.SyntaxMap.Key α

full_name: Aesop.SyntaxMap
code: structure SyntaxMap (α : Type _) where
  toPHashMap : PHashMap SyntaxMap.Key α
  deriving Inhabited
goal: Type u_1

full_name: Aesop.SyntaxRewrite
code: structure SyntaxRewrite where
  keys : Array SyntaxMap.Key
  run : Syntax → CoreM (Option Syntax)
  deriving Inhabited
goal: Type

full_name: Aesop.SyntaxRewrite.keys
code: structure SyntaxRewrite where
  keys : Array SyntaxMap.Key
  run : Syntax → CoreM (Option Syntax)
  deriving Inhabited
goal: Array Aesop.SyntaxMap.Key

full_name: Aesop.instInhabitedSyntaxRewrite
code: structure SyntaxRewrite where
  keys : Array SyntaxMap.Key
  run : Syntax → CoreM (Option Syntax)
  deriving Inhabited
goal: Inhabited Aesop.SyntaxRewrite

full_name: Aesop.SyntaxRewrite.run
code: structure SyntaxRewrite where
  keys : Array SyntaxMap.Key
  run : Syntax → CoreM (Option Syntax)
  deriving Inhabited
goal: Lean.Syntax → Lean.CoreM (Option Lean.Syntax)

full_name: Aesop.SyntaxMap.empty
code: protected def empty : SyntaxMap α 
goal: Aesop.SyntaxMap α

full_name: Aesop.SyntaxMap.instEmptyCollection
code: instance : EmptyCollection (SyntaxMap α) 
goal: EmptyCollection (Aesop.SyntaxMap α)

full_name: Aesop.SyntaxMap.find?
code: def find? (key : Key) (m : SyntaxMap α) : Option α 
goal: Option α

full_name: Aesop.SyntaxMap.findStx?
code: def findStx? (stx : Syntax) (m : SyntaxMap α) : Option α 
goal: Option α

full_name: Aesop.SyntaxMap.insert
code: def insert (key : Key) (val : α) (m : SyntaxMap α) : SyntaxMap α 
goal: Aesop.SyntaxMap α

full_name: Aesop.SyntaxMap.insertWith
code: @[macro_inline]
def insertWith (key : Key) (a : α) (f : α → α) (m : SyntaxMap α) : SyntaxMap α 
goal: Aesop.SyntaxMap α

full_name: Aesop.SyntaxRewriteMap
code: abbrev SyntaxRewriteMap 
goal: Type

full_name: Aesop.SyntaxRewriteMap.insert
code: def insert (rw : SyntaxRewrite) (m : SyntaxRewriteMap) : SyntaxRewriteMap 
goal: Aesop.SyntaxRewriteMap

full_name: Aesop.optimizeSyntaxWith
code: partial def optimizeSyntaxWith (rws : SyntaxRewriteMap) (stx : Syntax) :
    CoreM Syntax 
goal: Lean.CoreM Lean.Syntax

full_name: Aesop.optimizeSyntaxWith.optimizeHead
code: partial def optimizeSyntaxWith (rws : SyntaxRewriteMap) (stx : Syntax) :
    CoreM Syntax 
goal: Lean.CoreM Lean.Syntax

full_name: Aesop.optimizeSyntaxWith.go
code: partial def optimizeSyntaxWith (rws : SyntaxRewriteMap) (stx : Syntax) :
    CoreM Syntax 
goal: Lean.CoreM Lean.Syntax

full_name: Aesop.SyntaxRewrite.focusRenameI
code: def SyntaxRewrite.focusRenameI : SyntaxRewrite 
goal: Aesop.SyntaxRewrite

full_name: Aesop.optimizeSyntax
code: def optimizeSyntax (stx : TSyntax kind) : CoreM (TSyntax kind) 
goal: Lean.CoreM (Lean.TSyntax kind)