case package:selective

Handler of a single case in a generalised pattern matching matchCases.
Embed a list of values into Cases using the trivial but slow membership test based on elem.
The list of all possible values of an enumerable data type.
A list of values, equipped with a fast membership test.
Generalised pattern matching on a Sigma type using a Pi type to describe how to handle each case.