[QuickCheck: only pass expressions with matching types to lgg
Helmut Grohne <grohne@cs.uni-bonn.de>**20150417155804
 Ignore-this: ebfb7c3320088dbe4bfc04a3563b56af
 
 It is not clear what the lgg of two wildcards or variables with different types
 should be.
] hunk ./src/Tests.hs 214
+newtype UniformTExps = UniformTExps { getUniformTExps :: (TExp, TExp) }
+    deriving Show
+
+instance QC.Arbitrary UniformTExps where
+  arbitrary = do t1 <- QC.arbitrary
+                 t2 <- fmap fst . QC.sized $ genTExp (Just $ typeOf t1) M.empty
+                 return $ UniformTExps (t1, t2)
+
hunk ./src/Tests.hs 273
-    testProperty "Exprs: lgg [a, b] == lgg [b, a]" (lggSymmetric texpWitness),
+    testProperty "Exprs: lgg [a, b] == lgg [b, a]" (uncurry (lggSymmetric texpWitness) . getUniformTExps),