[ghc-steering-committee] Proposal #167 (Deprecated Entities): Request for comments
Eric Seidel
eric at seidel.io
Wed Feb 6 00:11:48 UTC 2019
Simon M says:
> On this proposal, I think the named, standalone variant is preferable to the positional variant if we choose only one, because it allows more flexibility. Although I could imagine both being useful.
Indeed, I'd be perfectly happy to have both variants. (And we could extend this to existing deprecations/warnings, e.g. there's no good reason to force module deprecations to be positional.)
Richard says:
> - Though I understand the reasons against it, I'm an unabashed supporter
> of using the word "data" to supplant "pattern". My principal argument is
> that `data` can be used freely in the syntax, given that it's a keyword
> that has current meaning only as the first lexeme in a top-level
> declaration. (Specifically, I pine for a future where types and terms
> mix. We can then use `type` and `data` in the middle of expressions/
> types to denote namespaces.) It also works nicely to mean "data
> constructor". I agree that it doesn't work as well with functions or the
> potential confusion around "data Bool = True | False" (though, in that
> last example, we can pretend hard that the `data` applies only to the
> bits after the `=`). The problem with `value` is that we would have `{-#
> DEPRECATED value, foo #-}` mean something very different than `{-#
> DEPRECATED value foo #-}`. This isn't a deal-breaker (punctuation
> normally is important in programming), but it's unfortunate.
I don't have a problem with `data`. I think the potential confusion around `data Bool = True | False` won't faze experienced Haskellers (who are the target audience for these pragmas). And the fact that `data` is already a reserved keyword is quite nice.
My main concern is that I'd like us to be consistent in how we disambiguate namespaces. If we want to use `data`, we should use it everywhere (synonyms are fine by me as long as they are also consistent). This would means we'd need to revise the fixity proposal I linked to above.
More information about the ghc-steering-committee
mailing list