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*
20 lines
277 B
Text
20 lines
277 B
Text
section
|
|
parameters {A : Type*} (a : A)
|
|
variable f : A → A → A
|
|
|
|
definition id2 : A := a
|
|
check id2
|
|
|
|
|
|
definition pr (b : A) : A := f a b
|
|
|
|
check pr f id2
|
|
|
|
set_option pp.universes true
|
|
|
|
check pr f id2
|
|
|
|
definition pr2 (B : Type*) (b : B) : A := a
|
|
|
|
check pr2 num 10
|
|
end
|