Kind/book/Monad/_.kind2
Victor Taelin 24510cedbe WIP
2024-07-05 02:03:05 -03:00

20 lines
434 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)
//data Monad (M: * -> *)
//| new
//(bind: ∀(A: *) ∀(B: *) ∀(a: (M A)) ∀(b: ∀(a: A) (M B)) (M B))
//(pure: ∀(A: *) ∀(a: A) (M A))