Splitting SYB from the base package in GHC 6.10

Claus Reinke claus.reinke at talk21.com
Tue Sep 2 19:43:35 EDT 2008

>>    following the recent discussion, I would suggest to split the
>>    instances into three groups, in three separate modules:
>>    [standard]: fully implemented 'Data' instances (no runtime errors).
>>    [partial]: partially implemented instances (usually for abstract types,

> If the Data class, your [standard] instances (including Ratio and Complex)
> and the instances for FFI pointer types are in base, then the packages you
> listed (array, bytestring, containers, haskell-src, network, packedstring
> and template-haskell) need no longer depend on syb, and syb need no
> longer be a boot package.  That would give maximal freedom to develop
> syb independently, wouldn't it?  (Changes to Data can't be independent
> of GHC, and the instances of the types listed are canonical, aren't they?)
> This wouldn't allow you to hide the partial instances for the pointer
> types, but it would be hard to stop them leaking anyway, as they're used
> by several of the above packages.

That would be my guess, yes. It isn't quite "maximal" freedom
because some of the things that one might want to improve would
not even be in 'syb', but would stay in 'base'. But with all this
surprising inertia, more freedom doesn't seem realistic anymore.


More information about the Libraries mailing list