[GHC] #9191: Semi-exported names
GHC
ghc-devs at haskell.org
Wed Jun 11 00:40:31 UTC 2014
#9191: Semi-exported names
-------------------------------------+------------------------------------
Reporter: dfeuer | Owner:
Type: feature request | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
Comment (by dfeuer):
Replying to [comment:3 carter]:
> Do you think those works will subsume your proposal?
I don't believe so. Backpack appears to build a whole new layer on top of
the primitive module system to impose constraints on modules, support
separate type-checking, etc. It (or something similar) looks likely to
become an important part of the Haskell ecosystem, supporting large
projects and interdependent libraries. My proposal is a much more
restricted one, filling in a small gap in the underlying module system
itself that can cause trouble when modifying a module that ''old'' code
imports in its entirety. This old code (which, since it uses unrestricted
module import, was probably written with more of an eye toward release
date than long-term maintenance) may never be retrofitted to use a system
like Backpack. The specific use-case I had in mind was adding `uncons ::
[a] -> Maybe (a, [a])` to `Data.List`. It obviously ''belongs'' there,
but adding it could break a lot of modules that just `import Data.List`.
If it were possible to make it hidden, so only modules that want it would
get it, then all would be fine.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9191#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list