Module listing discovery (wildcard glob)
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Now that `cabal` has common stanzas, the only thing keeping me using `hpack` is that `hpack` will, by default, autodiscover all of your modules and stuff them into `exposed-modules` (you can disable this by explicitly defining that stanza). This feature is *really* convenient to me.
Mimicing that behavior seems like it might be against the `Cabal` philosophy, as it's implicit -- "If `exposed-modules` is not defined, collect all modules not listed in `other-modules` and make them `exposed-modules`."
A middle ground solution that provides convenience with a degree of explicitness is glob patterns for the module listings. Consider this syntax:
exposed-modules: *
This would find all modules in the source directory and add them as `exposed-modules`. Kinda like `hpack`'s autodiscovery, but we're explicitly writing "please find all the modules for me."
You could also write:
exposed-modules:
Control.Monad.*
which would only collect modules under the `Control.Monad` namespace into `exposed-modules` -- any other modules would need to be either explicitly added to `exposed-modules` or `other-modules`.
Contributor guide
Assessment
This issue has not been assessed yet.