On Mon, Nov 19, 2012 at 12:25 PM, Tyson Whitehead <twhitehead@gmail.com> wrote:
  instance Monad m => Applicative m where
    applicative_map = monad_map
    applicative_pure = monad_pure
    applicative_apply = monad_apply

With this instance you are already dead in the water. Once you have it you can't safely add any new instances in another module and be able to rely on them being seen by the type system, so no, it doesn't work ;)

-Edward