
Malcolm Wallace wrote:
I'm strongly against.
Some datatypes have several different possible implementations of Applicative, for instance, they may be either lazy or strict. The PolyParse library relies crucially on the fact that the Monad and Applicative instances for the Parser type have different strictness behaviours.
I worry that if Applicative were to become a superclass of Monad, this way of partitioning my API into lazy and strict portions may no longer be possible, or least, a good deal less convenient.
Do you have an example of this? I should make (>>) a member of Applicative. Would that address you concern? Or are (Applicative) pure and (Monad) return different for your type? I intend to re-submit this for Haskell Prime. -- Ashley Yakeley