blob: 885d52b5ced075cba9f62b939d0293f3dc2aff55 [file] [edit]
class Foo (α β : Type) :=
(f : α → β)
export Foo (f)
@[default_instance]
instance : Foo Nat Nat := {
f := id
}
@[default_instance]
instance : Foo String String := {
f := id
}
def g (x : Nat) := f x -- works
def h (x : String) := f x -- works
def r (x : Bool) := f x -- error
def r [Foo Bool Nat] (x : Bool) := f x -- error
def r [Foo Bool Nat] (x : Bool) := (f x : Nat) -- works