Johan Tibell johan.tibell at
Mon Oct 22 18:40:21 CEST 2012

On Mon, Oct 22, 2012 at 9:14 AM, Simon Peyton-Jones
<simonpj at> wrote:
> Do you mean “silently and forever”?   Deprecation simply means that
> everything continues to work, but you get a little nudge to change.  Isn’t
> that what it’s for?  If you treat deprecation as equivalent to error, then
> there isn’t much point in having it.

Most people do treat deprecations as errors; having your compilation
output warning clean makes you less likely to miss those warnings that
are really important.

If you look at some widely used languages, like Java, you see that
they only deprecate things that are really error prone but avoid
deprecations altogether otherwise. When they do deprecate something,
they typically don't remove the deprecated entity, ever.

> It’s possible that making Rank2Types = RankNTypes silently and forever is
> the right answer.  It just doesn’t feel right to me.  But I’m not a library
> author and I don’t feel terribly strongly.

I think so.

-- Johan

More information about the cabal-devel mailing list