Kind/book/Monad.kind2
2024-03-01 20:40:31 -03:00

14 lines
283 B
Plaintext

Monad
: ∀(M: ∀(T: *) *) *
= λM
$(self: (Monad M))
∀(P: ∀(x: (Monad M)) *)
∀(new:
∀(bind:
∀(A: *) ∀(B: *) ∀(a: (M A)) ∀(b: ∀(a: A) (M B))
(M B)
)
∀(pure: ∀(A: *) ∀(a: A) (M A))
(P (Monad.new M bind pure))
)
(P self)