All the cool kids have their own Enumeration implementation, most of which try to do so in the name of implementing exhaustive pattern matching.
Base type for an enum entry for Enum