к
Size: a a a
JS
JS
Monad Maybe = Maybe : _ MonadJS
let S : Set; then MakePredicate(S)(x) ⇔ x ∈ S
let P : Predicate; then x ∈ MakeSet(P) ⇔ P(x)
MakeSet(MakePredicate(S)) = S
MakePredicate(MakeSet(P)) = PJS
P(x) <=> (x, True) ∈ PJS
JS
AV
MK
data TMaybe where
TNothing :: TMaybe
TJust :: forall a. Proxy a -> TMaybe
MK
AP
AP
MK
TJust :: forall a. TMaybeMK
a сматчить потом?AP
MK
MK