diff options
Diffstat (limited to 'testsuite/tests/perf/compiler/T11545.hs')
-rw-r--r-- | testsuite/tests/perf/compiler/T11545.hs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/testsuite/tests/perf/compiler/T11545.hs b/testsuite/tests/perf/compiler/T11545.hs new file mode 100644 index 0000000000..d35e21c2e8 --- /dev/null +++ b/testsuite/tests/perf/compiler/T11545.hs @@ -0,0 +1,12 @@ +module T11545 where + +data A = A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A deriving (Eq) + +data QuadTree a = QuadTree !Int [a] (QuadTree a) (QuadTree a) (QuadTree a) (QuadTree a) + +foldQuadTree :: (a -> b -> b) -> Int -> b -> QuadTree a -> b +foldQuadTree f maxSize = go + where + go z (QuadTree size elems t1 t2 t3 t4) + | size <= maxSize = foldr f z elems + | otherwise = go (go (go (go z t4) t3) t2) t1 |