blob: 73c290f1a012576ea646e55db477b921587c25c0 [file] [edit]
class HOp (α β γ) where hOp : α → β → γ
class LOp (α β) where lOp : α → β → β
class Op (α) where op : α → α → α
@[default_instance]
instance inst1 [LOp α β] : HOp α β β := ⟨LOp.lOp⟩
instance inst2 [Op α] : LOp α α := ⟨Op.op⟩
infix:75 " ⋆ " => HOp.hOp
section Test
variable (α) [LOp Nat α]
variable (x y z : α) (m n : Nat)
example : n ⋆ x = z := sorry -- TC works
example : 1 ⋆ x = z := sorry -- TC works
attribute [default_instance] inst2
example : n ⋆ x = z := sorry -- TC works
example : 1 ⋆ x = z := sorry -- TC fails
end Test