24 lines
600 B
Text
24 lines
600 B
Text
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
|