summaryrefslogtreecommitdiff
path: root/testsuite/tests/perf/compiler/T5837.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/perf/compiler/T5837.hs')
-rw-r--r--testsuite/tests/perf/compiler/T5837.hs40
1 files changed, 35 insertions, 5 deletions
diff --git a/testsuite/tests/perf/compiler/T5837.hs b/testsuite/tests/perf/compiler/T5837.hs
index 1dc3c33cd9..6ebbd65bd5 100644
--- a/testsuite/tests/perf/compiler/T5837.hs
+++ b/testsuite/tests/perf/compiler/T5837.hs
@@ -10,14 +10,44 @@ t = undefined
{-
- [G] a ~ TF (a,Int)
+ [G] a ~ TF (a,Int) -- a = a_am1
-->
- TF (a,Int) ~ fsk
- fsk ~ a
+ [G] TF (a,Int) ~ fsk -- fsk = fsk_am8
+inert [G] fsk ~ a
+
--->
- fsk ~ (TF a, TF Int)
- fsk ~ a
+ [G] fsk ~ (TF a, TF Int)
+inert [G] fsk ~ a
+
--->
a ~ (TF a, TF Int)
+inert [G] fsk ~ a
+
+---> (attempting to flatten (TF a) so that it does not mention a
+ TF a ~ fsk2
+inert a ~ (fsk2, TF Int)
+inert fsk ~ (fsk2, TF Int)
+
+---> (substitute for a)
+ TF (fsk2, TF Int) ~ fsk2
+inert a ~ (fsk2, TF Int)
+inert fsk ~ (fsk2, TF Int)
+
+---> (top-level reduction, re-orient)
+ fsk2 ~ (TF fsk2, TF Int)
+inert a ~ (fsk2, TF Int)
+inert fsk ~ (fsk2, TF Int)
+
+---> (attempt to flatten (TF fsk2) to get rid of fsk2
+ TF fsk2 ~ fsk3
+ fsk2 ~ (fsk3, TF Int)
+inert a ~ (fsk2, TF Int)
+inert fsk ~ (fsk2, TF Int)
+
+--->
+ TF fsk2 ~ fsk3
+inert fsk2 ~ (fsk3, TF Int)
+inert a ~ ((fsk3, TF Int), TF Int)
+inert fsk ~ ((fsk3, TF Int), TF Int)
-} \ No newline at end of file