max() and min() properties in typed enums to close type safety loophole, more writeup