================================================================================ Typechecked: C1{-r4,x-}{i} = _/\_ a_tr3j b_tr3k c_tr3l -> \ tpl_B1 tpl_B2 -> C1{-r4,x-}{i} {_@_ a_tr3j _@_ b_tr3k _@_ c_tr3l tpl_B1 tpl_B2} C2{-r3,x-}{i} = _/\_ a_tr3j b_tr3k c_tr3l -> \ tpl_B1 tpl_B2 -> C2{-r3,x-}{i} {_@_ a_tr3j _@_ b_tr3k _@_ c_tr3l tpl_B1 tpl_B2} C3{-r6,x-}{i} = _/\_ a_tr3j b_tr3k c_tr3l -> \ tpl_B1 tpl_B2 -> C3{-r6,x-}{i} {_@_ a_tr3j _@_ b_tr3k _@_ c_tr3l tpl_B1 tpl_B2} AbsBinds [taEz, taEB, taEC] [] [([taEz, taEB, taEC], con2tag_Foo#_rBK, con2tag_Foo#_aE7)] con2tag_Foo#_aE7 (C1{-r4,x-}{i} _ _) = 0# con2tag_Foo#_aE7 (C2{-r3,x-}{i} _ _) = 1# con2tag_Foo#_aE7 (C3{-r6,x-}{i} _ _) = 2# AbsBinds [taEU, taEX, taF0] [d.Eq_aGk, d.Eq_aGl, d.Eq_aGm] [([taEU, taEX, taF0], $d1{-rLl,x-}, d.Eq_aEK)] d.Eq_aGq = d.Eq_aGk ==_aLu = PrelBase.=={-8Y,p-} taEU d.Eq_aGq d.Eq_aGu = d.Eq_aGl ==_aLv = PrelBase.=={-8Y,p-} taEX d.Eq_aGu d.Eq_aGy = d.Eq_aGm ==_aLw = PrelBase.=={-8Y,p-} taF0 d.Eq_aGy ==_aLx = ==_aLy AbsBinds [] [] [([], ==_aLy, ==_aEO)] ==_aEO (C1{-r4,x-}{i} a1_rBS a2_rBT) (C1{-r4,x-}{i} b1_rBU b2_rBV) = (a1_rBS ==_aLu b1_rBU) PrelBase.&&{-rfc,p-} (a2_rBT ==_aLo b2_rBV) ==_aEO (C2{-r3,x-}{i} a1_rBX a2_rBY) (C2{-r3,x-}{i} b1_rBZ b2_rC0) = (a1_rBX ==_aLv b1_rBZ) PrelBase.&&{-rfc,p-} (a2_rBY ==_aLp b2_rC0) ==_aEO (C3{-r6,x-}{i} a1_rC2 a2_rC3) (C3{-r6,x-}{i} b1_rC4 b2_rC5) = (a1_rC2 ==_aLw b1_rC4) PrelBase.&&{-rfc,p-} (a2_rC3 ==_aLq b2_rC5) ==_aEO a_rC7 b_rC8 = PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], /=_aLz, /=_aGd)] /=_aGd a_rCc b_rCd = PrelBase.not{-rga,p-} ==_aLx a_rCc b_rCd d.Eq_aEK = ({-dict-} [] [==_aLy, /=_aLz]) AbsBinds [taLi, taLj, taLk] [] [([taLi, taLj, taLk], $d2{-rLm,x-}, d.Eval_aGL)] d.Eval_aGL = ({-dict-} [] []) AbsBinds [taH0, taH1, taH2] [d.Ord_aKA, d.Ord_aKB, d.Ord_aKC, d.Eq_aKD] [([taH0, taH1, taH2], $d3{-rLn,x-}, d.Ord_aGT)] d.Eq_aKz = d.Eq_aKD d.Ord_aJb = d.Ord_aKA d.Ord_aJc = d.Ord_aKB d.Ord_aJd = d.Ord_aKC compare_aLA = compare_aLG compare_aLB = compare_aLG compare_aLC = compare_aLG compare_aLD = compare_aLG compare_aLE = compare_aLG compare_aLF = compare_aLG AbsBinds [] [] [([], compare_aLG, compare_aGX)] compare_aGX a_rD5 b_rD6 = case con2tag_Foo#_rBK [taH2, taH0, taH1] a_rD5 of a#_rDI -> case con2tag_Foo#_rBK [taH2, taH0, taH1] b_rD6 of b#_rDK -> if a#_rDI GHC.==#{-79,w-}{I} b#_rDK then case cmp_eq_aLN a_rD5 b_rD6 of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.EQ{-r3m,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} else if a#_rDI GHC.<#{-7b,w-}{I} b#_rDK then PrelBase.LT{-r9P,p-}{i} else PrelBase.GT{-r9Q,p-}{i} where {- nonrec -} AbsBinds [taIi, taIj, taIm] [d.Ord_aIx, d.Ord_aIB, d.Ord_aIF] [([taIi, taIj, taIm], cmp_eq_rD8, cmp_eq_aH6)] compare_aLO = PrelBase.compare{-rfr,p-} taIi d.Ord_aIx compare_aLP = PrelBase.compare{-rfr,p-} taIj d.Ord_aIB compare_aLQ = PrelBase.compare{-rfr,p-} taIm d.Ord_aIF cmp_eq_aH6 (C1{-r4,x-}{i} a1_rDa a2_rDb) (C1{-r4,x-}{i} b1_rDc b2_rDd) = case compare_aLO a1_rDa b1_rDc of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> case compare_aLr a2_rDb b2_rDd of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.EQ{-r3m,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} cmp_eq_aH6 (C2{-r3,x-}{i} a1_rDl a2_rDm) (C2{-r3,x-}{i} b1_rDn b2_rDo) = case compare_aLP a1_rDl b1_rDn of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> case compare_aLs a2_rDm b2_rDo of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.EQ{-r3m,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} cmp_eq_aH6 (C3{-r6,x-}{i} a1_rDw a2_rDx) (C3{-r6,x-}{i} b1_rDy b2_rDz) = case compare_aLQ a1_rDw b1_rDy of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> case compare_aLt a2_rDx b2_rDz of PrelBase.LT{-r9P,p-}{i} -> PrelBase.LT{-r9P,p-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.EQ{-r3m,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.GT{-r9Q,p-}{i} cmp_eq_aH6 _ _ = IOBase.error{-87,w-} PrelBase.Ordering{-3o,p-} "Urk! in TcGenDeriv" {- nonrec -} cmp_eq_aLN = cmp_eq_rD8 [taH0, taH1, taH2] [d.Ord_aJb, d.Ord_aJc, d.Ord_aJd] {- nonrec -} AbsBinds [] [] [([], <_aLH, <_aJo)] <_aJo a_rCj b_rCk = case compare_aLA a_rCj b_rCk of PrelBase.LT{-r9P,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], <=_aLI, <=_aJB)] <=_aJB a_rCr b_rCs = case compare_aLB a_rCr b_rCs of PrelBase.LT{-r9P,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], >=_aLJ, >=_aJO)] >=_aJO a_rCz b_rCA = case compare_aLC a_rCz b_rCA of PrelBase.LT{-r9P,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.True{-5E,w-}{i} AbsBinds [] [] [([], >_aLK, >_aK1)] >_aK1 a_rCH b_rCI = case compare_aLD a_rCH b_rCI of PrelBase.LT{-r9P,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.EQ{-r3m,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.GT{-r9Q,p-}{i} -> PrelBase.True{-5E,w-}{i} AbsBinds [] [] [([], max_aLL, max_aKe)] max_aKe a_rCP b_rCQ = case compare_aLE a_rCP b_rCQ of PrelBase.LT{-r9P,p-}{i} -> b_rCQ PrelBase.EQ{-r3m,p-}{i} -> a_rCP PrelBase.GT{-r9Q,p-}{i} -> a_rCP AbsBinds [] [] [([], min_aLM, min_aKr)] min_aKr a_rCX b_rCY = case compare_aLF a_rCX b_rCY of PrelBase.LT{-r9P,p-}{i} -> a_rCX PrelBase.EQ{-r3m,p-}{i} -> b_rCY PrelBase.GT{-r9Q,p-}{i} -> b_rCY d.Ord_aGT = ({-dict-} [d.Eq_aKz] [compare_aLG, <_aLH, <=_aLI, >=_aLJ, >_aLK, max_aLL, min_aLM]) d.Eq_aKX = PrelBase.$d8{-raU,p-} ==_aLo = PrelBase.=={-8Y,p-} PrelBase.Int{-3g,W-} d.Eq_aKX d.Eq_aL0 = PrelNum.$d18{-rtI,p-} ==_aLp = PrelBase.=={-8Y,p-} PrelBase.Double{-3a,W-} d.Eq_aL0 d.Eq_aL5 = PrelBase.$d34{-rar,p-} d.Eq_aL3 = PrelBase.$d28{-rak,p-} PrelBase.Char{-38,W-} d.Eq_aL5 ==_aLq = PrelBase.=={-8Y,p-} PrelBase.String{-rfA,p-} d.Eq_aL3 d.Ord_aL8 = PrelBase.$d7{-raT,p-} compare_aLr = PrelBase.compare{-rfr,p-} PrelBase.Int{-3g,W-} d.Ord_aL8 d.Ord_aLb = PrelNum.$d17{-rtH,p-} compare_aLs = PrelBase.compare{-rfr,p-} PrelBase.Double{-3a,W-} d.Ord_aLb d.Ord_aLg = PrelBase.$d51{-raK,p-} d.Eq_aLh = d.Eq_aL3 d.Ord_aLe = PrelBase.$d27{-raj,p-} PrelBase.Char{-38,W-} [d.Ord_aLg, d.Eq_aLh] compare_aLt = PrelBase.compare{-rfr,p-} PrelBase.String{-rfA,p-} d.Ord_aLe ghc: module version changed to 1; reason: no old .hi file _interface_ ShouldSucceed 1 _instance_modules_ ArrBase IO PrelNum _usages_ PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d27 1 $d28 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d40 1 $d42 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 && 1 . 1 not 1 Eq 1 Eval 1 Ord 1 Ordering 1 String 1; PrelNum 1 :: $d17 1 $d18 1; _exports_ ShouldSucceed Foo(C1 C2 C3); _instances_ instance _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} = $d1; instance _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} = $d2; instance _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c} => {PrelBase.Ord (Foo a b c)} = $d3; _declarations_ 1 $d1 _:_ _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} ;; 1 $d2 _:_ _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} ;; 1 $d3 _:_ _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c, PrelBase.Eq (Foo a b c)} => {PrelBase.Ord (Foo a b c)} ;; 1 data Foo a b c = C1 a PrelBase.Int | C2 b PrelBase.Double | C3 c PrelBase.String ;