scalaz/scalaz — pull request #210 by larsrh (2012-12-09 14:00:30+00:00)
Title: Enum laws

As obvious from #134, the laws for `Enum` did not discover wrong implementations of `succn` and `predn`. Furthermore, the actual tests did not check `succorder` and `preorder` laws, otherwise we would've seen that they are wrong).

This pull request fixes both:

* Add a reference implementation of `succn` and `predn` outside of the `Enum` trait and require that the actual implementation agrees with these.
* In `succorder` and `preorder`, require that the element is not the minimum or