mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 15:21:12 +00:00
31 lines
752 B
Text
31 lines
752 B
Text
interface Res
|
|
exposes [ Res, withDefault, map, listMap, andThen, ConsList ]
|
|
imports []
|
|
|
|
Res ok err : [ Ok ok, Err err ]
|
|
|
|
ConsList a : [ Cons a (ConsList a), Nil ]
|
|
|
|
listMap : ConsList a, (a -> b) -> ConsList b
|
|
listMap = \list, f ->
|
|
when list is
|
|
Nil -> Nil
|
|
Cons x xs -> Cons (f x) (listMap xs f)
|
|
|
|
map : Res a err, (a -> b) -> Res b err
|
|
map = \result, transform ->
|
|
when result is
|
|
Ok ok -> Ok (transform ok)
|
|
Err err -> Err err
|
|
|
|
withDefault : Res a err, a -> a
|
|
withDefault = \result, default ->
|
|
when result is
|
|
Ok ok -> ok
|
|
Err _ -> default
|
|
|
|
andThen : Res a err, (a -> Res b err) -> Res b err
|
|
andThen = \result, transform ->
|
|
when result is
|
|
Ok ok -> transform ok
|
|
Err err -> Err err
|