-module(validator@option). -compile(no_auto_import). -export([is_some/1, optional/1]). is_some_check(Maybe) -> case Maybe of none -> none; {some, Value} -> {some, Value} end. is_some(Error) -> validator@common:custom(Error, fun is_some_check/1). optional(Validator) -> fun(Maybe) -> case Maybe of none -> {ok, Maybe}; {some, Value} -> case Validator(Value) of {ok, _} -> {ok, Maybe}; {error, Error} -> {error, Error} end end end.