[ghc-steering-committee] #167: Deprecated Entities, rec: accept
Simon Marlow
marlowsd at gmail.com
Fri Mar 8 07:57:12 UTC 2019
Yes, I think this is the right way to go.
Cheers
Simon
On Fri, 8 Mar 2019 at 05:25, Vitaly Bragilevsky <bravit111 at gmail.com> wrote:
> 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
>
>
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20190308/5c0bd69d/attachment-0001.html>
More information about the ghc-steering-committee
mailing list