GHC Proposal: Extension lifecycle framework

One thing that has come up in discussions in the HF’s Stability Working Group is that some users of Haskell have difficulties navigating the many language extensions that are available. Some extensions seem unlikely to ever change (e.g. DeriveFunctor), while others are undergoing rapid innovation. Still others are generally considered to have been a dead end in the design space. We propose an explicit framework for communicating the status of an extension, together with configurable compiler warnings that teams can use to get CI to keep track of the status of extensions for them.

We would like to do this in two stages: first, come up with the categories. While the system to track them is being implemented, write a follow-up proposal to classify the extensions themselves.

Does this sound useful to you or your team? Does it sound useless? Are we almost but not quite there? Your feedback would be greatly appreciated at the proposal’s discussion thread!

The proposal’s text was joint work with @telser and @chris.

17 Likes