-
-drv004.hs:5: No instance for:
- `PrelBase.Eq (Foo a{-aIX-} b{-aIY-})'
- drv004.hs:5:
- in an instance declaration
- When checking superclass constraints of an instance declaration
-Compilation had errors
+================================================================================
+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 ;