definition foo {A B : Type*} [has_add A] (a : A) (b : B) : A := a -- set_option trace.elaborator true -- set_option trace.elaborator_detail true set_option pp.all true #check foo 0 1 definition bla {A B : Type*} (a₁ a₂ : A) (b : B) : A := a₁ #check bla nat.zero tt 1 #check bla 0 0 tt