Testsuite: fixup comments for T9872d [skip ci]
[ghc.git] / testsuite / tests / perf / compiler / T5837.hs
1 {-# LANGUAGE AllowAmbiguousTypes, TypeFamilies #-}
2
3 module T5837 where
4
5 type family TF a :: *
6 type instance TF (a,b) = (TF a, TF b)
7
8 t :: (a ~ TF (a,Int)) => Int
9 t = undefined
10
11 {-
12
13 [G] a ~ TF (a,Int) -- a = a_am1
14 -->
15 [G] TF (a,Int) ~ fsk -- fsk = fsk_am8
16 inert [G] fsk ~ a
17
18 --->
19 [G] fsk ~ (TF a, TF Int)
20 inert [G] fsk ~ a
21
22 --->
23 a ~ (TF a, TF Int)
24 inert [G] fsk ~ a
25
26 ---> (attempting to flatten (TF a) so that it does not mention a
27 TF a ~ fsk2
28 inert a ~ (fsk2, TF Int)
29 inert fsk ~ (fsk2, TF Int)
30
31 ---> (substitute for a)
32 TF (fsk2, TF Int) ~ fsk2
33 inert a ~ (fsk2, TF Int)
34 inert fsk ~ (fsk2, TF Int)
35
36 ---> (top-level reduction, re-orient)
37 fsk2 ~ (TF fsk2, TF Int)
38 inert a ~ (fsk2, TF Int)
39 inert fsk ~ (fsk2, TF Int)
40
41 ---> (attempt to flatten (TF fsk2) to get rid of fsk2
42 TF fsk2 ~ fsk3
43 fsk2 ~ (fsk3, TF Int)
44 inert a ~ (fsk2, TF Int)
45 inert fsk ~ (fsk2, TF Int)
46
47 --->
48 TF fsk2 ~ fsk3
49 inert fsk2 ~ (fsk3, TF Int)
50 inert a ~ ((fsk3, TF Int), TF Int)
51 inert fsk ~ ((fsk3, TF Int), TF Int)
52
53 -}