[Haskell-cafe] QuickCheck Arbitrary - infinite recursion on recursive GADTs?