Rewrite foldl in the test suite
[list-fusion-probe.git] / tests / Test.hs
index 45eff8a..9697570 100644 (file)
@@ -15,8 +15,16 @@ assertErrorCall ex action =
   where isWanted (ErrorCall x) = guard $ x == ex
 
 
+-- Since GHC-7.10, foldl fuses, so re-write it here naively to have a
+-- non-fusing foldl
+myFoldl :: (b -> a -> b) -> b -> [a] -> b
+myFoldl f = go
+  where go a [] = a
+        go a (x:xs) = go (f a x) xs
+
+
 x1, x2 :: Integer
-x1 = foldl (+) 0 (fuseThis [0..1001])
+x1 = myFoldl (+) 0 (fuseThis [0..1001])
 x2 = foldr (+) 0 (fuseThis [0..1000])
 
 main = defaultMain unitTests