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