On 14/07/2009 15:04, Ian Lynagh wrote:
On Tue, Jul 14, 2009 at 07:48:36AM +0100, Sittampalam, Ganesh wrote:
I don't have any strong opinion about whether there should be a library
standard or not, but if there is a standard, how about putting the
entire thing (perhaps including the Prelude) under the prefix
Haskell2010. or similar? Most of it could be implemented by just
re-exporting things from the "real" libraries.

That would be OK with me, although I still think it would be easier for
us to disentangle the library standardisation effort from the language
standardisation effort.

I'd suggest

     Haskell.V2010.Data.List (just re-exports from V2011 where possible)
     Haskell.V2010.Prelude   (just re-exports from V2011 where possible)
     Haskell.V2011.Data.List
     Haskell.V2011.Prelude

with the implicit Prelude import being changed to
     Haskell.V<version>.Prelude
where<version>  is that latest the compiler supports, unless you say
e.g. -XHaskell2010.

I find this rather jarring, because it moves versioning from where it should be (in the package metadata) to where it shouldn't be (in the module names).

So why can't we use package versioning to do this? Suppose we have a 'haskell-std' package, with versions starting at 2010, providing modules like Data.List. The problem is that haskell-std:Data.List overlaps with base:Data.List.

But there's a solution: we could remove the "standard" modules from base, and have them only provided by haskell-std (since base will just be a re-exporting layer on top of base-internals, this will be easy to do). Most packages will then have dependencies that look like

  build-depends: base-4.*, haskell-std-2010

(or does it have to be haskell-std-2010.0?)

In some ways this is nice, because we will be able to keep old versions of haskell-std much longer than we can keep old versions of base. And in due course, we can move more modules into haskell-std. That makes an incremental approach to library standardisation possible, in the same way as we have modularised the language standardisation process.

So, if we have standard Haskell library modules, then I believe they should be separate at the package level (as they are now).

Cheers,
        Simon
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to