In the standard library, we should use explicit universe variables for universe polymorphic definitions. Users that want to declare universe polymorphic definitions but do not want to provide universe level parameters should use Type _ or Type*
17 lines
297 B
Text
17 lines
297 B
Text
open nat
|
||
namespace foo
|
||
section
|
||
parameter (X : Type)
|
||
definition A {n : ℕ} : Type := X
|
||
variable {n : ℕ}
|
||
set_option pp.implicit true
|
||
check @A n
|
||
set_option pp.full_names true
|
||
check @foo.A X n
|
||
check @A n
|
||
|
||
set_option pp.full_names false
|
||
check @foo.A X n
|
||
check @A n
|
||
end
|
||
end foo
|