`cabal check` should check `base` bounds wrt language extensions
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
**Describe the feature request**
I'm writing a library and I've enabled `OverloadedRecordDot` in my `.cabal` file. When I run `cabal check`, it doesn't say anything about my `base >= 4.7` bound, even though it should know that `OverloadedRecordDot` would require GHC >= 9.2 or a `base >= 4.16`.
**Additional context**
It's annoying to figure out what features are implemented in what GHCs and what `base` versions they correspond with. `cabal check` can easily automate this information, which would signal when you've started depending on a langauge extension that your `base` version bounds can't support.
Contributor guide
Research direction
Start at the `cabal check` entry point and inspect how it reads language extensions and `base` bounds from a `.cabal` file. Determine how the known GHC and `base` requirements for extensions such as `OverloadedRecordDot` should be represented and reported. Done means `cabal check` flags incompatible bounds for enabled extensions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100