
On Thu, May 23, 2013 at 5:02 PM, Ivan Lazar Miljenovic
On 24 May 2013 05:39, David Luposchainsky
wrote: Hello libraries,
it's on! Time to tackle the Applicative-Monad issue, hopefully once and for all. Over the last couple of weeks I've looked through previous proposals, asked #haskell about their opinions, and compiled it all into one file that sums up what I made of that. It's a bit long for an email and uses markdown, so I'll just provide links at the end of this mail instead of pasting it in here. In there, the whole thing and how to approach it is explained in more detail. Here's an abstract of what it the proposal consists of:
- Don't break compatibility - Apply it gently
- Applicative m => Monad m - Applicative into Prelude (and therefore into the Report) - (Alternative m, Monad m) => MonadPlus m - Promote `join` into the Monad typeclass
How about removing `return' from the Monad typeclass and just making it an alias for pure? Or is it being kept just to minimise breakage from existing instance declarations?
Relevant to this suggestion: https://groups.google.com/group/idris-lang/browse_thread/thread/e137645db268... Basically, someone is refactoring the Idris typeclasses to add Applicative as a superclass of Monad and observed the same thing. Jason