<div dir="ltr">A deprecation definitely signals an intent to *eventually* remove.<div><br></div><div>My point was more that around that particular combinator there are a lot of arguably legitimate users by users who aren't going to be inclined to remove it, because it does capture their intent.</div><div><br></div><div>For all that a subset of the community is very vocally against the use of partial functions like head, tail, fromJust, (!!), etc. deprecation should send a clear signal and it doesn't strike me that the disquiet over those combinators had risen to the level of overwhelming consent it would take to start marking this whole style of programming as deprecated.</div><div><br></div><div>Now, if we want to go after supplying a warning class for partial functions and let people opt in or out of it, that seems like another matter entirely. It doesn't require us to put these things on a clock for removal and folks can continue to agree to disagree about the relative merits of this style. It would also let us go much farther and enable separately configurable warnings across a much wider array of functions than just fromJust.</div><div><br></div><div>-Edward</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 24, 2015 at 6:35 PM, Ben Millwood <span dir="ltr"><<a href="mailto:haskell@benmachine.co.uk" target="_blank">haskell@benmachine.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm going to grab this quotation from a recent thread discussing removal of fromJust:<br>
<br>
On Tue, Feb 24, 2015 at 02:32:08PM -0500, Edward Kmett wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'm personally pretty strongly against removing this function on mere<br>
proscriptive grounds and a deprecation is effectively removal for most<br>
users who care about warnings.<br>
</blockquote>
<br>
This strikes me as troubling. Are we considering deprecations to be equivalent to removals, in terms of stability impact? I've heard more than one person suggest that we are, or should. The argument for it is reasonably clear: with -Werror enabled, as many people do, as many would encourage, even, either removal or deprecation of something you use will break your build.<br>
<br>
But surely the *entire purpose* of deprecations is to be *less* damaging than removals, and so if we're implicitly considering them equally bad, that suggests to me that our deprecation mechanism is totally broken, and needs to be fixed.<br>
<br>
I can think of several potential fixes, but I'd first like to see if others agree that there is a problem :)<br>
</blockquote></div><br></div>