blob: 3569d73bdcaa0958ded89161ef6368e6d21067f5 [file] [edit]
structure constantFunction (α β : Type) :=
(f : α → β)
(h : ∀ a₁ a₂, f a₁ = f a₂)
instance {α β : Type} : HasCoeToFun (constantFunction α β) :=
⟨_, constantFunction.f⟩
def myFun {α : Type} : constantFunction α (Option α) :=
{ f := fun a => none,
h := fun a₁ a₂ => rfl }
def myFun' (α : Type) : constantFunction α (Option α) :=
{ f := fun a => none,
h := fun a₁ a₂ => rfl }
#check myFun 3
#check @myFun Nat 3 -- works
#check myFun' _ 3
#check myFun' Nat 3 -- works
#check ⇑myFun 3
#check ⇑(myFun' _) 3
#check ⇑(myFun' Nat) 3