aboutsummaryrefslogtreecommitdiffstats
path: root/core/maybe.milch
blob: eaf2093990a29566eac3d63943ffb069c2860cfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
; LIB

(record Maybe/Just value)
(record Maybe/Nothing)

(let Maybe/just Maybe/Just/create)
(let Maybe/nothing Maybe/Nothing/create)

(let Maybe/map (\[f m]
    (match (kind m)
        "Maybe/Just" (Maybe/just (f (Maybe/Just/get-value m)))
        "Maybe/Nothing" (Maybe/nothing))))

(let Maybe/and-then (\[f m]
    (match (kind m)
        "Maybe/Just" (f (Maybe/Just/get-value m))
        "Maybe/Nothing" (Maybe/nothing))))

(let Maybe/default (\[default m]
    (match (kind m)
        "Maybe/Just" (ok-f (Maybe/Just/get-value m))
        "Result/Ex" default)))