
On Tue, 2009-12-29 at 11:03 +0000, Malcolm Wallace wrote:
I don't think we can say that we must restrict ourselves to the Haskell 2010 language extensions when the base package is using Rank2Types in its public API.
... and this is one of the great flaws of the base package.
Because of such non-standard extensions, the 'base' package API is _not_ universally available across all compilers. I strongly believe that 'base' is a misnomer, and we should consider hiding 'base' altogether, and creating a 'real-base' package that is (a) compliant to the language standards, (b) contains no compiler-specific modules or functions.
Sure, that'd also be a good solution. I do in principle support making base more portable and exporting the same API for all compilers. (I had to modify zlib the other day because of some ForeignPtr function which seems needlessly to be ghc-only.) In the mean time I don't see that it makes sense to do it using CPP for most core/platform packages and completely differently for the time package. Duncan