, iter/2
, of_result/1
, of_undefined/1
+ , to_undefined/1
, validate/2
]).
map(none , _) -> none.
-spec iter(t(A), fun((A) -> (any()))) ->
- ok.
+ {}.
iter({some, X}, F) ->
_ = F(X),
- ok;
+ {};
iter(none, _) ->
- ok.
+ {}.
-spec pipe([fun((A) -> t(B))], A) ->
t(B).
of_undefined(undefined) -> none;
of_undefined(X) -> {some, X}.
+-spec to_undefined(t(A)) ->
+ undefined | A.
+to_undefined(none) -> undefined;
+to_undefined({some, X}) -> X.
+
-spec validate(t(A), fun((A) -> boolean())) ->
t(A).
validate(none, _) ->