Kind/book/Maybe.bind.kind2
2024-02-12 20:15:50 -03:00

12 lines
262 B
Plaintext

Maybe.bind
: ∀(A: *)
∀(B: *)
∀(a: (Maybe A))
∀(b: ∀(x: A) (Maybe B))
(Maybe B)
= λA λB λa λb
let P = λx ∀(b: ∀(x: A) (Maybe B)) (Maybe B)
let some = λa.value λb (b a.value)
let none = λb (Maybe.none B)
(~a P some none b)