variable A : Type.{1}
variable B : Type.{1}
variable f : A → B
coercion f
variable g : B → B → B
variables a1 a2 a3 : A
variables b1 b2 b3 : B
check g a1 b1
set_option pp.coercions true
check g a1 b1

variable eq {A : Type} : A → A → Type.{0}
check eq a1 a2
check eq a1 b1
set_option pp.implicit true
check eq a1 b1
set_option pp.universes true
check eq a1 b1

inductive pair (A : Type) (B: Type) : Type :=
mk : A → B → pair A B

check pair.mk a1 b2
check B
check pair.mk
set_option pp.unicode false
check pair.mk
set_option pp.implicit false
check pair.mk
check pair
