Move toEnum,fromEnum into the Enum class, and provide default implementations for succ,pred,toEnum,fromEnum
Added more laws to Enum