-module(hope_option).
--behavior(hope_monad).
+-behavior(hope_gen_monad).
-export_type(
[ t/1
, iter/2
, pipe/2
, of_result/1
+ , of_undefined/1
]).
t(A).
of_result({ok, X}) -> {some, X};
of_result({error, _}) -> none.
+
+-spec of_undefined(undefined | A) ->
+ t(A).
+of_undefined(undefined) -> none;
+of_undefined(X) -> {some, X}.