Given another Option containing a function from A to B, if
both Options are Some, call that function with the value
of this Option and return an Option<B> containing the
function's return value. If either Option is None, return
None.
If the Option isn't empty, call the provided function with the contained value and
return a new Option containing the result of the function, which must
be another Option. If the Option is empty, return None
without calling the function.
This is the monadic bind function, for those who celebrate.
If the Option is empty, call the provided function and return its
result, which must be another Option of A. If the Option is
Some, return the Some value without calling the function.
Methods available on Option objects.