Private name support. #
Suppose the user marks as declaration n
as private. Then, we create
the name: _private.<module_name>.0 ++ n
.
We say _private.<module_name>.0
is the "private prefix"
We assume that n
is a valid user name and does not contain
Name.num
constructors. Thus, we can easily convert from
private internal name to the user given name.
Equations
- Lean.mkPrivateNameCore mainModule n = (Lean.privateHeader ++ mainModule).mkNum 0 ++ n
Equations
- Lean.isPrivateName (p.str str) = (p.str str == Lean.privateHeader || Lean.isPrivateName p)
- Lean.isPrivateName (p.num i) = Lean.isPrivateName p
- Lean.isPrivateName x✝ = false
@[export lean_is_private_name]
Equations
Return true
if n
is of the form _private.<module_name>.0
See comment above.
Equations
Equations
- Lean.isPrivatePrefix.go (p.str str) = (p.str str == Lean.privateHeader || Lean.isPrivatePrefix.go p)
- Lean.isPrivatePrefix.go n = (n == Lean.privateHeader || false)
@[export lean_private_to_user_name]
Equations
Equations
@[export lean_private_prefix]