
Brandon S. Allbery KF8NH
On 2008 Jul 22, at 23:01, Roger Myers wrote:
Not sure if I'm on the right track here, so as a beginner I thought I'd ask on this list.
I want to declare a type 'All' that consists of the of the types 'Tinteger, Tbool, Tstring, Tarray' but I would also like to make a relationship that Tinteger and Tbool are also the type 'Simple' and that 'Tstring' and 'Tarray' are 'Composite' and that Mixed is then either Simpletype or Composite.
So I can then write a function that takes a type of All and produces a list of Mixed.
Any particular reason that All can't be represented by Mixed? That would be my first cut at it (assuming I didn't need advanced type hackery for some reason).
Hmm... ah, bad thinking on my part. I think this serves me a lot better: data Simple = Tinteger Int | Tbool Bool data Composite = Tstring String | Tarray [All] data All = Simple | Composite k :: All -> [All] k a = case a of Simple -> [a] Composite -> [a] Thanks :)