26 lines
834 B
Text
26 lines
834 B
Text
import Lean
|
|
|
|
open Lean
|
|
open Lean.Meta
|
|
|
|
-- Return true if `declName` should be ignored
|
|
def shouldIgnore (declName : Name) : Bool :=
|
|
declName.isInternal
|
|
|| match declName with
|
|
| .str _ s => "match_".isPrefixOf s || "proof_".isPrefixOf s || "eq_".isPrefixOf s
|
|
| _ => true
|
|
|
|
-- Print declarations that have the given prefix.
|
|
def printDecls (pre : Name) : MetaM Unit := do
|
|
let cs := (← getEnv).constants
|
|
cs.forM fun declName info => do
|
|
if pre.isPrefixOf declName && !shouldIgnore declName then
|
|
if let some docString ← findDocString? (← getEnv) declName then
|
|
IO.println s!"/-- {docString} -/\n{declName} : {← ppExpr info.type}"
|
|
else
|
|
IO.println s!"{declName} : {← ppExpr info.type}"
|
|
|
|
#eval printDecls `Array
|
|
#eval printDecls `List
|
|
#eval printDecls `Bool
|
|
#eval printDecls `Lean.Elab
|