[Haskell-cafe] MRP, 3-year-support-window, and the non-requirement of CPP

Yuras Shumovich shumovichy at gmail.com
Sun Oct 11 09:49:39 UTC 2015


On Sat, 2015-10-10 at 16:39 -0400, Edward Kmett wrote:
> On Sat, Oct 10, 2015 at 4:12 PM, Yuras Shumovich <
> shumovichy at gmail.com>
> wrote:
> 
> > There is no reason to include `return` into the next standard. That
> > is
> > true.
> 
> 
> Nobody is saying that we should remove return from the language. The
> proposal was to move it out of the class -- eventually. Potentially
> on a
> very very long time line.

Yes, I meant there were no reason to include `return` into `Monad`
class in the next standard.


> There are some niggling corner cases around viewing its continued
> existence
> as a compiler "extension" though, even just around the behavior when
> you
> import the class with Monad(..) you get more or less than you'd
> expect.

Indeed that is a good argument.


> The cost of doing nothing is maintaining a completely redundant
> member
> inside the class for all time 

Well, it is just a single line of code. Of course, as any other
technical dept, it can beat you later, e.g. it can make some other
modification harder. But in the worst case it will cost one more
deprecation circle.


> and an ever-so-slightly more expensive
> dictionaries for Monad

Do you mean that moving `return` to the top level will give us
noticeable performance improvement?


> so retaining return in the class does no real harm
> operationally.

IMO that is the reason for the "ruckus".


Thank you for the detailed answer.

Yuras


> 
> While I'm personally somewhat in favor of its eventual migration on
> correctness grounds and believe it'd be nice to be able to justify
> the
> state of the world as more than a series of historical accidents when
> I put
> on my libraries committee hat I have concerns.
> 
> I'm inclined to say at the least that IF we do decide to proceed on
> this,
> at least the return component should be on a long time horizon, with
> a
> clock tied to the release of a standard, say a Haskell2020. I stress
> IF,
> because I haven't had a chance to go through and do any sort of
> detailed
> tally or poll to get a sense of if there is a sufficient mandate.
> There is
> enough of a ruckus being raised that it is worth proceeding
> cautiously if
> we proceed at all.
> 
> -Edward


More information about the Haskell-Cafe mailing list