Module DA.Optional¶
The Optional type encapsulates an optional value. A value of type
Optional a either contains a value of type a (represented as Some a),
or it is empty (represented as None). Using Optional is a good way
to deal with errors or exceptional cases without resorting to
drastic measures such as error.
The Optional type is also an action. It is a simple kind of error
action, where all errors are represented by None. A richer
error action can be built using the Either type.
Functions¶
- fromSome
- : Optional a -> a - The - fromSomefunction extracts the element out of a- Someand throws an error if its argument is- None.- Note that in most cases you should prefer using - fromSomeNoteto get a better error on failures.
- fromSomeNote
- 
Like fromSomebut with a custom error message.
- catOptionals
- : [Optional a] -> [a] - The - catOptionalsfunction takes a list of- Optionalsand returns a list of all the- Somevalues.
- listToOptional
- : [a] -> Optional a - The - listToOptionalfunction returns- Noneon an empty list or- Somea where a is the first element of the list.
- optionalToList
- : Optional a -> [a] - The - optionalToListfunction returns an empty list when given- Noneor a singleton list when not given- None.
- fromOptional
- : a -> Optional a -> a - The - fromOptionalfunction takes a default value and a- Optionalvalue. If the- Optionalis- None, it returns the default values otherwise, it returns the value contained in the- Optional.
- isSome
- 
The isSomefunction returnsTrueiff its argument is of the formSome _.
- mapOptional
- : (a -> Optional b) -> [a] -> [b] - The - mapOptionalfunction is a version of- mapwhich can throw out elements. In particular, the functional argument returns something of type- Optional b. If this is- None, no element is added on to the result list. If it is- Some b, then- bis included in the result list.
- whenSome
- : Applicative m => Optional a -> (a -> m ()) -> m () - Perform some operation on - Some, given the field inside the- Some.