Calls an appropriate handler depending on if the optional has a value or not
The optional to call match on
2 predicates, one that takes the underlying optional type and another that names nothing
See Implementation
Calls an appropriate handler depending on if the optional has a value or not