
Ketil Malde wrote:
Simon Marlow
writes: http://hackage.haskell.org/trac/ghc/wiki/PackageCompatibility
It's been helpful for me to write all this down, the issues seem much clearer. However, I don't see an obviously best solution. For me proposal 4.2 (see the wiki page) looks the most promising, but it doesn't provide complete backwards compatibility, so I imagine there will be people who disagree.
The section "The problem of lax version dependencies" refers to "Solution 3", which doesn't seem to exists. Presumably "Solution 2" is meant?
Wouldn't keeping "base-2.0" and rebranding "base-3.0" to "foundation-1.0" (which might be listed as "Solution 2.1") solve this issue?
This is actually what proposal 4.2 is about. But note that in order to keep base-2.0 around you need to either compile up a complete copy of it and all the packages that depend on it (proposal 2, a non-starter IMO), or allow package re-exports (proposal 4). Maintaining an exact replica of the base-2.0 API is impractical (proposal 4.1), so what we'd actually have is base-3.0 (proposal 4.2). Cheers, Simon