The biggest issue I see is the usage of `enum` now makes it so any code that 
expects a `enum` typeclass has to delimit three different types of `enum` 
(OrdinalEnum, HoleyEnum, and SumEnum). Consider `parseEnum` it's constrained to 
the typeclass but obviously will only work on the numeric enums(Even your 
examples use a generic constraint that would not make sense for numeric enums). 
I would argue to use `object` as it does not conflate an ordinal type to a 
record type, a builtin typeclass then could be made named `SumObject` for this 
specific construct.

Reply via email to