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*
23 lines
374 B
Text
23 lines
374 B
Text
section
|
|
parameters {A : Type*} {B : Type*}
|
|
|
|
definition foo1 (a : A) (b : B) := a
|
|
|
|
parameters (B) {A} -- Should not change the order of the parameters
|
|
|
|
definition foo2 (a : A) (b : B) := a
|
|
|
|
parameters {B} (A)
|
|
|
|
definition foo3 (a : A) (b : B) := a
|
|
|
|
parameters (A) (B)
|
|
|
|
definition foo4 (a : A) (b : B) := a
|
|
|
|
end
|
|
|
|
check @foo1
|
|
check @foo2
|
|
check @foo3
|
|
check @foo4
|