scalaz/scalaz — pull request #582 by S11001001 (2013-11-16 18:39:41+00:00)
Title: 7.0: Make OptionT/LazyOptionT monad legal in ap/bind consistency

Fixes #579 for 7.0.x.

This is a source-incompatible but binary-compatible change; those binaries that had `Monad` instance for the underlying `F` available at compile time will be automatically fixed, and such will be obvious by their continuing to compile with no source changes.

Overloading to receive the new `ap` for `OptionT` in #581 doesn't work, and I can't drop the method without breaking binary compatibility, so I merely ask that it not be used anymore in 7.0.x-targeting code.

Those codebases that wish to continue using the inconsistent `Apply`/`Applicative` instances can do so explicitly, but that is removed in 7.1 entirely, so they should probably not do so.