scalaz/scalaz — pull request #538 by xuwei-k (2013-09-19 13:26:24+00:00)
Title: fix EitherRightEqual, EitherLeftEqual

does not satisfy the [`naturality law`](https://github.com/scalaz/scalaz/blob/v7.1.0-M2/core/src/main/scala/scalaz/Equal.scala#L30)

```scala
scala> import scalaz._,Scalaz._
import scalaz._
import Scalaz._

scala> scalaz.std.either.eitherRightEqual[Int, String]
res0: scalaz.Equal[Either.RightProjection[Int,String]] = scalaz.std.EitherInstances0$$anon$39@34a266b5

scala> val e1 = Left[Int,String](1).right
e1: scala.util.Either.RightProjection[Int,String] = RightProjection(Left(1))

scala> val e2 = Left[Int,String](2).right
e2: scala.util.Either.RightProjection[Int,String] = RightProjection(Left(2))

scala> e1 == e2
res1: Boolean = false

scala> res0.equal(e1, e2)
res2: Boolean = true

scala> res0.equalLaw.naturality(e1, e2)
res3: Boolean = false
```