<!-- # Read this section before submitting * Ensure your PR follows the [External Contribution Guidelines](https://github.com/leanprover/lean4/blob/master/CONTRIBUTING.md). * Please make sure the PR has excellent documentation and tests. If we label it `missing documentation` or `missing tests` then it needs fixing! * Include the link to your `RFC` or `bug` issue in the description. * If the issue does not already have approval from a developer, submit the PR as draft. * The PR title/description will become the commit message. Keep it up-to-date as the PR evolves. * If you rebase your PR onto `nightly-with-mathlib` then CI will test Mathlib against your PR. * You can manage the `awaiting-review`, `awaiting-author`, and `WIP` labels yourself, by writing a comment containing one of these labels on its own line. * Remove this section, up to and including the `---` before submitting. --> See RFC #3644 for a discussion of design choices. Closes #3644
103 lines
2.3 KiB
Text
103 lines
2.3 KiB
Text
/-!
|
||
Test #print command for structures and classes
|
||
-/
|
||
|
||
/- Structure -/
|
||
/--
|
||
info: structure Prod.{u, v} : Type u → Type v → Type (max u v)
|
||
number of parameters: 2
|
||
constructor:
|
||
Prod.mk : {α : Type u} → {β : Type v} → α → β → α × β
|
||
fields:
|
||
fst : α
|
||
snd : β
|
||
-/
|
||
#guard_msgs in
|
||
#print Prod
|
||
|
||
/- Class -/
|
||
/--
|
||
info: class Inhabited.{u} : Sort u → Sort (max 1 u)
|
||
number of parameters: 1
|
||
constructor:
|
||
Inhabited.mk : {α : Sort u} → α → Inhabited α
|
||
fields:
|
||
default : α
|
||
-/
|
||
#guard_msgs in
|
||
#print Inhabited
|
||
|
||
/- Structure with private field -/
|
||
/--
|
||
info: structure Thunk.{u} : Type u → Type u
|
||
number of parameters: 1
|
||
constructor:
|
||
Thunk.mk : {α : Type u} → (Unit → α) → Thunk α
|
||
fields:
|
||
private fn : Unit → α
|
||
-/
|
||
#guard_msgs in
|
||
#print Thunk
|
||
|
||
/- Extended class -/
|
||
/--
|
||
info: class Alternative.{u, v} : (Type u → Type v) → Type (max (u + 1) v)
|
||
number of parameters: 1
|
||
constructor:
|
||
Alternative.mk : {f : Type u → Type v} →
|
||
[toApplicative : Applicative f] → ({α : Type u} → f α) → ({α : Type u} → f α → (Unit → f α) → f α) → Alternative f
|
||
fields:
|
||
toApplicative : Applicative f
|
||
failure : {α : Type u} → f α
|
||
orElse : {α : Type u} → f α → (Unit → f α) → f α
|
||
-/
|
||
#guard_msgs in
|
||
#print Alternative
|
||
|
||
/- Multiply extended class -/
|
||
/--
|
||
info: class Applicative.{u, v} : (Type u → Type v) → Type (max (u + 1) v)
|
||
number of parameters: 1
|
||
constructor:
|
||
Applicative.mk : {f : Type u → Type v} →
|
||
[toFunctor : Functor f] →
|
||
[toPure : Pure f] → [toSeq : Seq f] → [toSeqLeft : SeqLeft f] → [toSeqRight : SeqRight f] → Applicative f
|
||
fields:
|
||
toFunctor : Functor f
|
||
toPure : Pure f
|
||
toSeq : Seq f
|
||
toSeqLeft : SeqLeft f
|
||
toSeqRight : SeqRight f
|
||
-/
|
||
#guard_msgs in
|
||
#print Applicative
|
||
|
||
/- Structure with unused parameter -/
|
||
|
||
structure Weird (α β : Type _) where
|
||
a : α
|
||
|
||
/--
|
||
info: structure Weird.{u_1, u_2} : Type u_1 → Type u_2 → Type u_1
|
||
number of parameters: 2
|
||
constructor:
|
||
Weird.mk : {α : Type u_1} → {β : Type u_2} → α → Weird α β
|
||
fields:
|
||
a : α
|
||
-/
|
||
#guard_msgs in
|
||
#print Weird
|
||
|
||
/- Structure-like inductive -/
|
||
|
||
inductive Fake (α : Type _) where
|
||
| mk : (x : α) → Fake α
|
||
|
||
/--
|
||
info: inductive Fake.{u_1} : Type u_1 → Type u_1
|
||
number of parameters: 1
|
||
constructors:
|
||
Fake.mk : {α : Type u_1} → α → Fake α
|
||
-/
|
||
#guard_msgs in
|
||
#print Fake
|