-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jón Fairbairn wrote: > Is there some reason why you don't want > > data Op = Aop Aop | Bop Bop > data Aop = Minus | Plus | Mul > data Bop = LT | GT > > or similar? I would agree that it's a shame one cannot just write > > data Op = Aop (Minus | Plus | Mul) | Bop (LT | GT) > > or even, given a somewhat different type system, > > data Op = Aop | Bop > where Aop = Minus | Plus | Mul > Bop = LT | GT > > but it would seem reasonable to reflect the different types > of the Ops in different types in their representations. >
Slightly off-topic, I had a problem like this, only where I wanted to classify by more than one dimension: "readable?" as well as "writable?" (some were none, some both, some just readable and some just writable), so I couldn't split up the type hierarchically like that. I think I just wrote tedious functions to say whether each constructor was in each category. Isaac -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGJ4uLHgcxvIWYTTURAkKgAJ9N998vRVsmrhHuz/zoVJaHN3nuKgCcCSmX qRFWGfKZGORAKI61J8153AI= =eVR6 -----END PGP SIGNATURE----- _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe