On Wed, Aug 25, 2004 at 04:14:48PM +0100, Simon D. Foster wrote:
I think I jumped the gun it a bit; it almost works, but when I try to declare a serializer for a type with several parts e.g.
data Person = Person PackedString PackedString Int
instance (Hook Person t) => Serializer Person t where ...
If I try to call encode on any of the attributes I get;
Could not deduce (Hook PackedString t) from the context (Serializer Person t, Hook Person t, Hook Person t)
Thus, I have to add a (Hook x t) constraint for every type that is part of the given data-type. For your example try;
data D = D Int instance (Mixin D t) => Serializer D t where encodePrim t (D n) = "(D " ++ encode t n ++ ")"
Is there anyway of getting around this?
Perhaps you could just 'encode Id' that parts? Best regards, Tom -- .signature: Too many levels of symbolic links