simonpj at microsoft.com
Mon Mar 19 05:06:01 EDT 2007
| > base isn't compatible between major ghc versions (6.6/6.8). so you may
| > use only base 2.0 with 6.6 or base 3.0 with 6.8.
| This seems wrong to me (though I'm quite new at this, so there could
| be something obvious I'm missing). I understand that ghc-6.6 expects
| certain types and functions to be defined at particular places within
| base, but most names aren't like that. One could declare that base-2.x
| defines all the magic names in the places ghc-6.6 expects them, but
| other names can be moved around between 2.x and 2.(x+1). Then ghc-6.8
| would expect the names where base-3.x places them, and so on.
That's more or less it. I documented this here
In the vocabulary of that page
* You can change neither the definition nor the location of wired-in things
* You can change the definition, but not the location, of known-key or Orig-RdrName things
By "location" I mean the name and defining module.
The Wiki page tells you how to find out exactly which names fall into which category.
Does that help? If anything is unclear, let's improve the Commentary
| So, to solve the immediate problem you're complaining about, it might
| be more practical to pull the "bottom" (GHC/Prim*.hs) out of base into
| something like ghc-prim for ghc-6.8 rather than to prevent new modules
| from being added to the top.
We have considered doing that. But I don't follow how it would help you here.
More information about the Libraries