
Herbert Valerio Riedel
writes:
The point of this Monad-of-no-return Proposal was to provide the formal basis to be able to write the AMP into the next upcoming Haskell Report in a sensible way (and I think we can all agree that this is the right thing to do as there is no good justification for including the `Monad(return)`-method in an Haskell Report integrating the AMP changes)
However, one thing that seems to have been mostly ignored in this whole discussion so far is that just because the next Haskell Report anticipates the removal of `return` and `(>>)` as methods this doesn't mean that GHC's `base` library has to follow suit immediately!
The proposal states that phase 2 can happen in GHC 8.2 *or later*. This could also mean e.g. GHC 8.4, GHC 8.8, or even GHC 9.0! This is very different from the AMP, MFP or FTP which are/were subject to a swift transition scheme with a rigid timeframe.
Old code still overriding `return` will continue to compile (if it didn't break already for AMP/MFP/...) for as many years in GHC as desired.
And code written against the new Haskell Report (especially when ignoring the existence of the `return`-method) would work just fine against GHC's `base` as well.
So there's not that much immediate breakage due to MRP specifically after all.
Then count me again as +1, thanks for the clarification, Herbert. John