<p dir="ltr"><br>
On Sep 27, 2015 9:56 PM, "Richard Eisenberg" <<a href="mailto:eir@cis.upenn.edu">eir@cis.upenn.edu</a>> wrote:<br>
><br>
> I like this idea -- I, for one, often forget to consider the effect legacy written material has. But if we're doing this for Monad, why not just come up with a pragma so that the magic doesn't have to be baked in? As in, witness the new definition for Monad:<br>
><br>
> > class Applicative m => Monad m where<br>
> >   ...<br>
> >   {-# REMOVED return "The `return` method has been removed from Monad. Use `pure` in Applicative instead" #-}<br>
><br>
> (Please fix my warning text.)<br>
><br>
> We people with direct access to GHC might not be the only ones who want to refactor a method out from a class.</p>
<p dir="ltr">That's an excellent idea, and I think it makes sense to offer it at the module level as well as the class level. Just change DEPRECATED to REMOVED when it's actually removed. Speaking of such, has the deprecated export proposal made any headway?</p>
<p dir="ltr">David Feuer</p>