roc/compiler/load/tests/fixtures/build/interface_with_deps/Res.roc
2020-03-06 18:24:37 -05:00

32 lines
831 B
Text

interface Res
exposes [ Res, withDefault, map, andThen, ConsList ]
imports []
Res ok err : [ Ok ok, Err err ]
ConsList a : [ Cons a (ConsList a), Nil ]
# TODO FIXME for some reason, exposing this causes a stack overflow
# 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