fromOption<A, B> function
- A leftValue(
A function that takes a function that produces a leftValue and returns a function that
converts an Option into an Either that is Left with the provided value if the option is None,
and Right with the value from Some if the option is Some.
Example usage:
Option<int> someOption = Some(42);
Option<int> noneOption = const None();
var eitherFromOption = fromOption<String, int>(() => 'No value'); // returns a function
Either<String, int> either1 = eitherFromOption(someOption); // This will be Right(42)
Either<String, int> either2 = eitherFromOption(noneOption); // This will be Left('No value')
@category lift
Implementation
Either<A, B> Function(Option<B> option) fromOption<A, B>(
A Function() leftValue) =>
(Option<B> option) =>
option is Some<B> ? right<A, B>(option.value) : left<A, B>(leftValue());