[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / tests / typecheck / should_succeed / tc049.stderr
1 Typechecked:
2 d.Num.t125 = dfun.Num.Integer
3 d.Num.t133 = dfun.Num.Integer
4 d.Eq.t130 = sdsel.Num.Eq tt105 d.Num.t125
5 d.Eq.t138 = sdsel.Num.Eq tt121 d.Num.t133
6 fromInt.t124 = fromInt tt105 d.Num.t125
7 lit.t106 = fromInt.t124 (MkInt 2#)
8 fromInt.t126 = fromInt.t124
9 lit.t104 = fromInt.t126 (MkInt 1#)
10 d.Eq.t131 = dfun.Eq.Bool
11 d.Eq.t129 = dfun.Eq.Tuple2 [tt105, Bool] [d.Eq.t130, d.Eq.t131]
12 (==.t128) = (==) (tt105, Bool) d.Eq.t129
13 (==.t127) = eqList (tt105, Bool) ==.t128
14 (==.t102) = eqList [(tt105, Bool)] ==.t127
15 (==.t111) = eqString
16 fromInt.t132 = fromInt tt121 d.Num.t133
17 lit.t122 = fromInt.t132 (MkInt 3#)
18 fromInt.t134 = fromInt.t132
19 lit.t120 = fromInt.t134 (MkInt 2#)
20 fromInt.t135 = fromInt.t134
21 lit.t118 = fromInt.t135 (MkInt 1#)
22 (==.t137) = (==) tt121 d.Eq.t138
23 (==.t136) = eqList tt121 ==.t137
24 (==.t116) = eqList [tt121] ==.t136
25 AbsBinds [tt19] [d.Num.t24, d.Ord.t28] [(fib.t1, ShouldSucceed.fib)]
26     (fromInt.t23, fromInt tt19 d.Num.t24)
27     (lit.t20, fromInt.t23 (MkInt 2#))
28     (d.Num.t25, d.Num.t24)
29     (-.t18, (-) tt19 d.Num.t25)
30     (fromInt.t26, fromInt.t23)
31     (lit.t14, fromInt.t26 (MkInt 1#))
32     (-.t12, (-.t18))
33     (d.Num.t27, d.Num.t25)
34     (+.t9, (+) tt19 d.Num.t27)
35     (lit.t6, lit.t20)
36     (<=.t4, (<=) tt19 d.Ord.t28)
37     {- rec -}
38     fib.t1 :: tt19 -> tt19
39     fib.t1
40         n.r64 = if n.r64 <=.t4 lit.t6 then
41                     n.r64
42                 else
43                     (fib.t1 (n.r64 -.t12 lit.t14))
44                     +.t9 (fib.t1 (n.r64 -.t18 lit.t20))
45 AbsBinds [] [] [(oR.t30, ShouldSucceed.oR)]
46     {- nonrec -}
47     oR.t30 :: Bool -> Bool -> Bool
48     oR.t30
49         a.r69 b.r70
50                 = if a.r69 then True else b.r70
51 AbsBinds [tt41] [d.Eq.t46] [(mem.t34, ShouldSucceed.mem)]
52     (==.t42, (==) tt41 d.Eq.t46)
53     {- rec -}
54     mem.t34 :: tt41 -> [tt41] -> Bool
55     mem.t34
56         x.r65 [] = False
57     mem.t34
58         x.r66 (y.r67 : ys.r68)
59                 = (x.r66 ==.t42 y.r67) `ShouldSucceed.oR` (mem.t34 x.r66 ys.r68)
60 AbsBinds [] [] [(oR1.t48, ShouldSucceed.oR1)]
61     {- nonrec -}
62     oR1.t48 :: Bool -> Bool -> Bool
63     oR1.t48
64         a.r75 b.r76
65                 = if a.r75 then True else b.r76
66 AbsBinds
67 [tt61]
68 [d.Eq.t77]
69 [(mem1.t53, ShouldSucceed.mem1), (mem2.t54, ShouldSucceed.mem2)]
70     (==.t62, (==) tt61 d.Eq.t77)
71     (==.t73, (==.t62))
72     {- rec -}
73     mem1.t53 :: tt61 -> [tt61] -> Bool
74     mem1.t53
75         x.r71 [] = False
76     mem1.t53
77         x.r72 (y.r73 : ys.r74)
78                 = (x.r72 ==.t62 y.r73)
79                   `ShouldSucceed.oR1` (mem2.t54 x.r72 ys.r74)
80     mem2.t54 :: tt61 -> [tt61] -> Bool
81     mem2.t54
82         x.r77 [] = False
83     mem2.t54
84         x.r78 (y.r79 : ys.r80)
85                 = (x.r78 ==.t73 y.r79)
86                   `ShouldSucceed.oR` (mem1.t53 x.r78 ys.r80)
87 AbsBinds
88 [tt87]
89 [d.Eq.t98]
90 [(mem3.t80, ShouldSucceed.mem3), (mem4.t81, ShouldSucceed.mem4)]
91     (==.t97, (==) tt87 d.Eq.t98)
92     (==.t89, eqList tt87 ==.t97)
93     {- rec -}
94     mem3.t80 :: tt87 -> [tt87] -> Bool
95     mem3.t80
96         x.r81 [] = False
97     mem3.t80
98         x.r82 (y.r83 : ys.r84)
99                 = if ([x.r82] (tt87)) ==.t89 ([y.r83] (tt87)) then
100                       mem4.t81 x.r82 ys.r84
101                   else
102                       False
103     mem4.t81 :: tt87 -> [tt87] -> Bool
104     mem4.t81
105         y.r87 (x.r85 : xs.r86)
106                 = mem3.t80 y.r87 xs.r86
107 AbsBinds [] [] [(main1.t100, ShouldSucceed.main1)]
108     {- nonrec -}
109     main1.t100 :: Bool
110     main1.t100
111         = ([[(lit.t104, True)] ((tt105, Bool))] ([(tt105, Bool)]))
112           ==.t102 ([[(lit.t106, False)] ((tt105, Bool))] ([(tt105, Bool)]))
113 AbsBinds [] [] [(main2.t109, ShouldSucceed.main2)]
114     {- nonrec -}
115     main2.t109 :: Bool
116     main2.t109 = "Hello" ==.t111 "Goodbye"
117 AbsBinds [] [] [(main3.t114, ShouldSucceed.main3)]
118     {- nonrec -}
119     main3.t114 :: Bool
120     main3.t114
121         = ([[lit.t118] (tt121), [lit.t120] (tt121)] ([tt121]))
122           ==.t116 ([[lit.t122] (tt121)] ([tt121]))
123