Foo.val : (α β : Type) → [self : Foo α β] → Nat 10 valOf2 Bool Bool : Nat fun x y => f x y 10 : Nat → Nat → Nat fun a => g a 10 : Nat → Nat fun a => h Bool a true : Bool → Bool