Splitting SYB from the base package in GHC 6.10

Ross Paterson ross at soi.city.ac.uk
Sun Oct 5 06:34:13 EDT 2008


On Sat, Oct 04, 2008 at 05:17:41PM +0200, José Pedro Magalhães wrote:
> Basically, a new module Data.Data in base contains the previous
> Data.Generics.Basics and most of the instances from Data.Generics.Instances.
> Other changes are:
> 
> On Mon, Sep 15, 2008 at 13:28, José Pedro Magalhães <jpm at cs.uu.nl> wrote:
> 
>       + Ratio has to be fixed to have a consistent instance: either it's seen
>         as an abstract datatype (therefore with undefined gunfold) or a gfoldl
>         has to be defined matching its gunfold;
> 
> Ratio had its gfoldl defined to match its gunfold. Since GHC.Ratio exports the
> constructor (:%), I guess Ratio cannot be considered abstract.

I don't think GHC.Ratio counts as part of the public interface.
But Ratio isn't a showstopper.

>           o The imports of SYB in the following modules should be fixed to
>             avoid bringing into scope all the instances:
> 
>         ./containers/Data/IntMap.hs
>         ./containers/Data/IntSet.hs
>         ./containers/Data/Map.hs
>         ./containers/Data/Sequence.hs
>         ./containers/Data/Set.hs
>         ./containers/Data/Tree.hs
>         ./network/Network/URI.hs
>         ./packedstring/Data/PackedString.hs
> 
> This was not done, given the discussion in [1] regarding instance visibility
> and orphans.

I've pushed patches to HEAD to do this for array, containers,
packedstring and template-haskell.  I think we should be aiming to
remove all dependencies of boot libs on syb, and possibly to making syb
an extra-lib.  The only boot lib left depending on syb is bytestring,
but I understand that has other issues.


More information about the Libraries mailing list