Since Don was kind enough to include my question in HWN (http://www.cse.unsw.edu.au/~dons/code/hwn/archives/20060522.html) and I have now come up with a solution, I have created a wiki page (http://haskell.org/haskellwiki/QuickCheck_/_GADT) with it in. Dominic.