scalaz/scalaz — pull request #586 by S11001001 (2013-11-20 04:05:32+00:00)
Title: Apply & Bind laws

Per #585.

The `Apply` law turns out to match @ekmett's [semigroupoids Apply law](http://hackage.haskell.org/package/semigroupoids-4.0/docs/Data-Functor-Apply.html#g:2). That's nice.

They likewise match for [semigroupoids Bind](http://hackage.haskell.org/package/semigroupoids-4.0/docs/Data-Functor-Bind.html#g:4). That's nice too.

Some things may have to be revisited. For example, `Applicative[[a]OneAnd[F]]` demands `ApplicativePlus[F]`, and the lawful relationship between `Applicative` and `Plus` so implied, whereas `Apply[[a]OneAnd[F]]` only asks for `Applicative[F]` and `Plus[F]` regardless of their relationship. @xuwei-k, was this your motivation for this separation in #407?