
On Wed, Jul 23, 2008 at 5:42 AM, Jeff Zaroyko
data Simple = Tinteger Int | Tbool Bool data Composite = Tstring String | Tarray [All]
data All = Simple | Composite
Don't you mean: data All = Simple Simple | Composite Composite So the 'All' type contains the 'Simple' and 'Composite' types. In case you find it confusing that the constructor names are the same as the names of the types you can write something like: data All = S Simple | C Composite I don't know what your 'k' should do. Because your function...
k :: All -> [All] k a = case a of Simple -> [a] Composite -> [a]
...can be simplified to: 'k a = [a]' (if you disregard the strictness properties) which isn't very useful. So I guess you mean something different. regards, Bas