Module docstring
{"# Init.Prelude
This is the first file in the Lean import hierarchy. It is responsible for setting
up basic definitions, most of which Lean already has \"built in knowledge\" about,
so it is important that they be set up in exactly this way. (For example, Lean will
use PUnit in the desugaring of do notation, or in the pattern match compiler.)
","Initialize the Quotient Module, which effectively adds the following definitions: ``` opaque Quot {α : Sort u} (r : α → α → Prop) : Sort u
opaque Quot.mk {α : Sort u} (r : α → α → Prop) (a : α) : Quot r
opaque Quot.lift {α : Sort u} {r : α → α → Prop} {β : Sort v} (f : α → β) : (∀ a b : α, r a b → Eq (f a) (f b)) → Quot r → β
opaque Quot.ind {α : Sort u} {r : α → α → Prop} {β : Quot r → Prop} :
(∀ a : α, β (Quot.mk r a)) → ∀ q : Quot r, β q
","# if-then-else ","# Boolean operators ","# Syntax ","# Syntax AST ","# Builtin kinds ","# Parser descriptions ","Runtime support for making quotation terms auto-hygienic, by mangling identifiers
introduced by them with a \"macro scope\" supplied by the context. Details to appear in a
paper soon.
","We represent a name with macro scopes as
Example: suppose the module name is `Init.Data.List.Basic`, and name is `foo.bla`, and macroscopes [2, 5]
foo.bla.@.Init.Data.List.Basic.hyg.2.5
```
We may have to combine scopes from different files/modules.
The main modules being processed is always the right-most one.
This situation may happen when we execute a macro generated in
an imported file in the current file.
[email protected]._hyg.4
The delimiter _hyg is used just to improve the hasMacroScopes performance.
"}