[ghc-steering-committee] #167: Deprecated Entities, rec: accept

Vitaly Bragilevsky bravit111 at gmail.com
Fri Mar 8 05:24:58 UTC 2019


Hi everyone,

I was asked to shepherd the proposal #167 (Deprecated Entities,
https://github.com/nineonine/ghc-proposals/blob/depr-entities/proposals/0000-deprecated-entities.rst).
It is proposed to extend (nonpositional) DEPRECATED pragma with the two
specifiers to disambiguate deprecating named type-level and value-level
things. In its current formulation, the proposal suggests to use the
specifiers "type" for type-level things and "pattern" for value-level
things as follows:

data Bar = Bar
{-# DEPRECATED type Bar "Don't use type Bar" #-}
data Baz = Baz
{-# DEPRECATED pattern Baz "Don't use data constructor Baz" #-}

Using this pragma without specifiers should mean deprecating both (as is
works now).

After discussing this proposal within the committee (see
https://mail.haskell.org/pipermail/ghc-steering-committee/2019-February/000894.html),
I recommend acceptance with one change, namely using "data" instead of
"pattern" for deprecating value-level things.

Reasons for choosing "data":
* it's a reserved keyword (as opposed to "value", which is another option)
* we are deprecating data constructors here
* it just feels right (sorry!)

Reasons against "data":
* it can be confusing whether we mean data type or data constructor
* we use "value" and "pattern" in other places meaning basically the same
thing

If the committee decides to go this way, then the wider community may think
about other proposals, such as
* adding positional DEPRECATED pragmas (including class instances
deprecation)
* fixing inconsistencies with the fixity declarations (
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0008-type-infix.rst)
and updating ExplicitNamespaces in import/export lists
* deprecating usage of nonpositional DEPRECATED pragma without the
specifiers

Silence is understood as agreement.

Regards,
Vitaly
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20190308/888afa09/attachment.html>


More information about the ghc-steering-committee mailing list