See also: the Extractor.scala library, and SIP-NN - CONVERTERS AMONG OPTIONAL FUNCTIONS, PARTIALFUNCTIONS AND EXTRACTOR OBJECTS.