section parameter {A : Type*} parameter A -- definition id (a : A) := a parameter {A} definition id₂ (a : A) := a end #check @id #check @id₂ section parameters {A : Type*} {B : Type*} definition foo1 (a : A) (b : B) := a parameters {A} (B) definition foo2 (a : A) (b : B) := a parameters (A) {B} definition foo3 (a : A) (b : B) := a parameters (A) (B) definition foo4 (a : A) (b : B) := a #check @foo1 #check @foo2 #check @foo3 #check @foo4 end #check @foo1 #check @foo2 #check @foo3 #check @foo4 section variables {A : Type*} {B : Type*} definition boo1 (a : A) (b : B) := a variables {A} (B) definition boo2 (a : A) (b : B) := a variables (A) {B} definition boo3 (a : A) (b : B) := a variables (A) (B) definition boo4 (a : A) (b : B) := a #check @boo1 #check @boo2 #check @boo3 #check @boo4 end section variables {A : Type*} {B : Type*} parameter (A) -- ERROR variable (C) -- ERROR variables (C) (D) -- ERROR variables C -- ERROR definition id3 (a : A) := a parameter id3 -- ERROR parameter (C : Type) variables {C} -- ERROR end