summaryrefslogtreecommitdiff
path: root/testsuite/tests/deSugar/should_run/dsrun011.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/deSugar/should_run/dsrun011.hs')
-rw-r--r--testsuite/tests/deSugar/should_run/dsrun011.hs93
1 files changed, 93 insertions, 0 deletions
diff --git a/testsuite/tests/deSugar/should_run/dsrun011.hs b/testsuite/tests/deSugar/should_run/dsrun011.hs
new file mode 100644
index 0000000000..b7e518c0bf
--- /dev/null
+++ b/testsuite/tests/deSugar/should_run/dsrun011.hs
@@ -0,0 +1,93 @@
+-- Test desugaring of mutual recursion of many functions
+-- which generated a big-tuple link error in GHC 6.0
+
+module Main where
+
+
+a1 :: Num a => a -> a
+
+a1 x | x==0 = x
+a1 x = 1 + k8 (x-1)
+
+a2 x = 1 + a1 x
+a3 x = 1 + a2 x
+a4 x = 1 + a3 x
+a5 x = 1 + a4 x
+a6 x = 1 + a5 x
+a7 x = 1 + a6 x
+a8 x = 1 + a7 x
+
+b1 x = 1 + a8 x
+b2 x = 1 + b1 x
+b3 x = 1 + b2 x
+b4 x = 1 + b3 x
+b5 x = 1 + b4 x
+b6 x = 1 + b5 x
+b7 x = 1 + b6 x
+b8 x = 1 + b7 x
+
+c1 x = 1 + b8 x
+c2 x = 1 + c1 x
+c3 x = 1 + c2 x
+c4 x = 1 + c3 x
+c5 x = 1 + c4 x
+c6 x = 1 + c5 x
+c7 x = 1 + c6 x
+c8 x = 1 + c7 x
+
+d1 x = 1 + c8 x
+d2 x = 1 + d1 x
+d3 x = 1 + d2 x
+d4 x = 1 + d3 x
+d5 x = 1 + d4 x
+d6 x = 1 + d5 x
+d7 x = 1 + d6 x
+d8 x = 1 + d7 x
+
+e1 x = 1 + d8 x
+e2 x = 1 + e1 x
+e3 x = 1 + e2 x
+e4 x = 1 + e3 x
+e5 x = 1 + e4 x
+e6 x = 1 + e5 x
+e7 x = 1 + e6 x
+e8 x = 1 + e7 x
+
+f1 x = 1 + e8 x
+f2 x = 1 + f1 x
+f3 x = 1 + f2 x
+f4 x = 1 + f3 x
+f5 x = 1 + f4 x
+f6 x = 1 + f5 x
+f7 x = 1 + f6 x
+f8 x = 1 + f7 x
+
+g1 x = 1 + f8 x
+g2 x = 1 + g1 x
+g3 x = 1 + g2 x
+g4 x = 1 + g3 x
+g5 x = 1 + g4 x
+g6 x = 1 + g5 x
+g7 x = 1 + g6 x
+g8 x = 1 + g7 x
+
+h1 x = 1 + g8 x
+h2 x = 1 + h1 x
+h3 x = 1 + h2 x
+h4 x = 1 + h3 x
+h5 x = 1 + h4 x
+h6 x = 1 + h5 x
+h7 x = 1 + h6 x
+h8 x = 1 + h7 x
+
+k1 x = 1 + h8 x
+k2 x = 1 + k1 x
+k3 x = 1 + k2 x
+k4 x = 1 + k3 x
+k5 x = 1 + k4 x
+k6 x = 1 + k5 x
+k7 x = 1 + k6 x
+k8 x = 1 + k7 x
+
+
+main = print (a1 3) \ No newline at end of file