section
  variables (A B C : Type)
  definition foo := A → B

  #check foo A B
  #check foo B C
  #check foo A A
end

constants A B C : Type
#check foo A B
#check foo B C
#check foo A A

section
  variables (A B C : Type)
  definition foo2 := A → B

  #check foo2 A B
  #check foo2 B C
  #check foo2 A A
end
