Generics... no Tuples > 2 either...

Abraham Egnor aegnor at
Thu Feb 26 14:18:22 EST 2004

I've been frustrated by the same lack of instances; as a stopgap, here's
one for a three-tuple.  The pattern is pretty clear and can easily be
extended to whatever size you'd like.

tupCon = mkConstr 1 "(,,)" Prefix

instance (Data a, Data b, Data c) => Data (a, b ,c) where
    gfoldl k z (a, b, c) = ((z (,,) `k` a) `k` b) `k` c
    toConstr _ = tupCon
    fromConstr _ = (undefined, undefined, undefined)
    dataTypeOf _ = mkDataType [tupCon]

MR K P SCHUPKE <k.schupke at> writes:
>Any chance of Data instances for tuples of size
>greater than 2... One of the nice things about generics is
>you can use them by deriving Data on your datatypes - of
>course this doesn't work if you all of a sudden have to 
>put a load of boiler-plate in just to use tuples...
>	Regards,
>	Keean Schupke
>Glasgow-haskell-users mailing list
>Glasgow-haskell-users at

More information about the Glasgow-haskell-users mailing list