[Haskell-cafe] Deriving type family data

Tuve Nordius tuve at student.chalmers.se
Tue Apr 28 11:07:36 EDT 2009

If I for some data type wants to derive, in this case Data and  
Typeable for use with syb code, but the problem is the same regardless  
what I want to derive.

data family Something

data Tree = Leaf Something | Fork Something Tree Tree
	deriving (Data, Typeable)

The problem is I want to derive a class for a data type that depends  
on some non instantiated data type.

I can of course rewrite Tree as:

data (Data a) => Tree a = Leaf a | Fork a Tree Tree
	deriving (Data, Typeable)

but then data family Something is redundant, I want to think of  
Something as a not yet instantiated abstract data type

Is there anyway to express that either the instance of Something used  
in Tree should be a member of Data, or even better
any instance of Something should be a member of Data or maybe even  
better that every instance should  derive data.

data family Something
	deriving Data

//Tuve Nordius 

More information about the Haskell-Cafe mailing list