haskell / haskell/core-libraries-committee
Stable alternatives for widely used GHC.* APIs
- Dominant language
- Haskell
- Stars
- 109
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
@TeofilC identified the following GHC.* modules which are slated for deprecated as widely used so we should find or design alternatives to them:
- GHC.Exception -- 42 uses on Hackage
- GHC.IO.Buffer -- 22 uses on Hackage
- GHC.IO.Device -- 39 uses on Hackage
- GHC.IO.Encoding -- 132 uses on Hackage
- GHC.IO.Exception -- 287 uses on Hackage
How should we go about this? We could methodically go through all these uses and try to find common functionality, then design APIs which are as small as possible which can still efficiently provide that functionality. Perhaps the first step then is to get a full list. I could find some on Serokell's Hackage search tool, but how did you originally find these uses @TeofilC?
I do worry about how we can be certain that the alternative APIs are complete. We could make patches for each affected package. That sounds like a lot of work but it may be doable within a reasonable time frame. Honestly, I do enjoy refactoring things like this.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by building the full list of Hackage uses for GHC.Exception, GHC.IO.Buffer, GHC.IO.Device, GHC.IO.Encoding, and GHC.IO.Exception, using Serokell's Hackage search tool or the discovery method mentioned in the issue. Compare those usages to identify common functionality and assess whether stable alternatives are complete; done requires agreed replacement APIs and, if pursued, patches for affected packages.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100