<div dir="ltr">Hi everyone, <div><br></div><div>I was asked to shepherd the proposal #167 (Deprecated Entities, <a href="https://github.com/nineonine/ghc-proposals/blob/depr-entities/proposals/0000-deprecated-entities.rst">https://github.com/nineonine/ghc-proposals/blob/depr-entities/proposals/0000-deprecated-entities.rst</a>). 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:<br><br>data Bar = Bar</div><div>{-# DEPRECATED type Bar "Don't use type Bar" #-} </div><div>data Baz = Baz<br></div><div>{-# DEPRECATED pattern Baz "Don't use data constructor Baz" #-}<br><br>Using this pragma without specifiers should mean deprecating both (as is works now).</div><div><br></div><div>After discussing this proposal within the committee (see <a href="https://mail.haskell.org/pipermail/ghc-steering-committee/2019-February/000894.html">https://mail.haskell.org/pipermail/ghc-steering-committee/2019-February/000894.html</a>), I recommend acceptance with one change, namely using "data" instead of "pattern" for deprecating value-level things. </div><div><br></div><div>Reasons for choosing "data":</div><div>* it's a reserved keyword (as opposed to "value", which is another option)</div><div>* we are deprecating data constructors here<br></div><div>* it just feels right (sorry!)</div><div><br></div><div>Reasons against "data":</div><div>* it can be confusing whether we mean data type or data constructor</div><div>* we use "value" and "pattern" in other places meaning basically the same thing</div><div><br></div><div>If the committee decides to go this way, then the wider community may think about other proposals, such as</div><div>* adding positional DEPRECATED pragmas (including class instances deprecation)</div><div>* fixing inconsistencies with the fixity declarations (<a href="https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0008-type-infix.rst">https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0008-type-infix.rst</a>) and updating ExplicitNamespaces in import/export lists</div><div>* deprecating usage of nonpositional DEPRECATED pragma without the specifiers</div><div><br></div><div>Silence is understood as agreement. <br></div><div><br></div><div>Regards, </div><div>Vitaly<br><br><br></div></div>