Splitting SYB from the base package in GHC 6.10

Ross Paterson ross at soi.city.ac.uk
Wed Sep 3 07:57:50 EDT 2008

Another attempt:

These [standard] instances are uncontroversial and can accompany the
Data class:

    [] Maybe Either () tuples
    Bool Ordering Char Double Float Integer
    Int Int8 Int16 Int32 Int64 Word Word8 Word16 Word32 Word64

These instances could also be [standard], after fixing:

    Ratio Complex

These instances are [partial]:

    DataType TyCon TypeRep Handle
    Ptr StablePtr ForeignPtr

> That depends on whether the [partial] 'Data' instances can be
> completed in a sensible way for these types. If they can't, then
> the way forward would be to split the 'Data' class into those
> operations supported by all current instances and those only
> supported by the types in [standard]. That way, one would the
> presence of instances would at least be indicative of the presence
> of instance methods, providing more static type safety. But if the
> 'Data' class and some instances are in 'base', there'd be no
> changing them (*).

Unless anyone can imagine a completion for these types, it seems the
fix must await restructuring of the Data class, so these might as well
accompany the Data class too.

Stuff in base can be changed, just not easily or quickly.  And given
that Data is tied up with GHC, that may be unavoidable.

More information about the Libraries mailing list