aboutsummaryrefslogtreecommitdiffstats
path: root/core/maybe.milch
blob: 9c0d3ac26bb70fb67c3e070a988a1f73e1681dbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(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 (Maybe/Just/get-value m)
        :Result/Ex default)))