==================== Typechecked ==================== MkFoo1{-rk,x-}{i} = _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 -> MkFoo1{-rk,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2} :##{-rj,x-}{i} = _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 -> :##{-rj,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2} MkFoo3{-rm,x-}{i} = _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 -> MkFoo3{-rm,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2} :***{-ro,x-}{i} = _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 -> :***{-ro,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2} AbsBinds [taIx] [d.Bar_aIA] [([taIx], f3d{-r4o,x-}, f3d_aTU)] /////_aTV = /////{-r4C,x-} taIx d.Bar_aIA f3d_aTU x_r48 y_r49 = x_r48 /////_aTV y_r49 AbsBinds [taIR] [d.Bar_aIU] [([taIR], f3c{-r4p,x-}, f3c_aU0)] /////_aU1 = /////{-r4C,x-} taIR d.Bar_aIU f3c_aU0 x_r45 y_r46 = /////_aU1 x_r45 y_r46 AbsBinds [taJb] [d.Bar_aJe] [([taJb], f3b{-r4q,x-}, f3b_aU2)] meth1_aU3 = meth1{-r4B,x-} taJb d.Bar_aJe f3b_aU2 x_r42 y_r43 = x_r42 meth1_aU3 y_r43 AbsBinds [taJv] [d.Bar_aJy] [([taJv], f3a{-r4r,x-}, f3a_aU4)] meth1_aU5 = meth1{-r4B,x-} taJv d.Bar_aJy f3a_aU4 x_r3Z y_r40 = meth1_aU5 x_r3Z y_r40 AbsBinds [taJZ, taK1, taK3] [] [([taJZ, taK1, taK3], <<<<{-r4s,x-}, <<<<_aU6)] <<<<_aU6 x_r3T y_r3U = :***{-ro,x-}{i} [taJZ, taK1, taK3] x_r3T y_r3U <<<<_aU6 x_r3W y_r3X = :***{-ro,x-}{i} [taJZ, taK1, taK3] x_r3W y_r3X AbsBinds [taKk, taKm, taKo] [] [([taKk, taKm, taKo], .....{-r4t,x-}, ....._aU7)] ....._aU7 x_r3Q y_r3R = MkFoo3{-rm,x-}{i} [taKk, taKm, taKo] x_r3Q y_r3R AbsBinds [taKF, taKH, taKJ] [] [([taKF, taKH, taKJ], ....{-r4u,x-}, ...._aU8)] ...._aU8 x_r3N y_r3O = MkFoo3{-rm,x-}{i} [taKF, taKH, taKJ] x_r3N y_r3O AbsBinds [taL0, taL2, taL4] [] [([taL0, taL2, taL4], f2a{-r4v,x-}, f2a_aU9)] f2a_aU9 x_r3K y_r3L = :##{-rj,x-}{i} [taL0, taL2, taL4] x_r3K y_r3L AbsBinds [taLl, taLn, taLp] [] [([taLl, taLn, taLp], f2{-r4w,x-}, f2_aUa)] f2_aUa x_r3H y_r3I = :##{-rj,x-}{i} [taLl, taLn, taLp] x_r3H y_r3I AbsBinds [taLG, taLI, taLK] [] [([taLG, taLI, taLK], f1a{-r4x,x-}, f1a_aUb)] f1a_aUb x_r3E y_r3F = MkFoo1{-rk,x-}{i} [taLG, taLI, taLK] x_r3E y_r3F AbsBinds [taM1, taM3, taM5] [] [([taM1, taM3, taM5], f1{-r4y,x-}, f1_aUc)] f1_aUc x_r3B y_r3C = MkFoo1{-rk,x-}{i} [taM1, taM3, taM5] x_r3B y_r3C AbsBinds [taMM, taMP, taMQ] [] [([taMM, taMP, taMQ], con2tag_Foo#_rFK, con2tag_Foo#_aUd)] con2tag_Foo#_aUd (MkFoo1{-rk,x-}{i} _ _) = 0# con2tag_Foo#_aUd (:##{-rj,x-}{i} _ _) = 1# con2tag_Foo#_aUd (MkFoo3{-rm,x-}{i} _ _) = 2# con2tag_Foo#_aUd (:***{-ro,x-}{i} _ _) = 3# AbsBinds [taN8, taNb, taNe] [d.Eq_aOZ, d.Eq_aP0, d.Eq_aP1] [([taN8, taNb, taNe], $d1{-rTW,x-}, d.Eq_aMY)] d.Eq_aP5 = d.Eq_aOZ ==_aUe = PrelBase.=={-8Z,p-} taN8 d.Eq_aP5 d.Eq_aP7 = d.Eq_aP0 ==_aUf = PrelBase.=={-8Z,p-} taNb d.Eq_aP7 d.Eq_aP9 = d.Eq_aP1 ==_aUg = PrelBase.=={-8Z,p-} taNe d.Eq_aP9 ==_aUh = ==_aUi AbsBinds [] [] [([], ==_aUi, ==_aUk)] ==_aUl = ==_aUe ==_aUm = ==_aUf ==_aUn = ==_aUf ==_aUo = ==_aUg ==_aUp = ==_aUg ==_aUk (MkFoo1{-rk,x-}{i} a1_rFT a2_rFU) (MkFoo1{-rk,x-}{i} b1_rFV b2_rFW) = (a1_rFT ==_aUe b1_rFV) PrelBase.&&{-rgw,p-} (a2_rFU ==_aUl b2_rFW) ==_aUk (:##{-rj,x-}{i} a1_rFY a2_rFZ) (:##{-rj,x-}{i} b1_rG0 b2_rG1) = (a1_rFY ==_aUf b1_rG0) PrelBase.&&{-rgw,p-} (a2_rFZ ==_aUg b2_rG1) ==_aUk (MkFoo3{-rm,x-}{i} a1_rG3 a2_rG4) (MkFoo3{-rm,x-}{i} b1_rG5 b2_rG6) = (a1_rG3 ==_aUm b1_rG5) PrelBase.&&{-rgw,p-} (a2_rG4 ==_aUn b2_rG6) ==_aUk (:***{-ro,x-}{i} a1_rG8 a2_rG9) (:***{-ro,x-}{i} b1_rGa b2_rGb) = (a1_rG8 ==_aUo b1_rGa) PrelBase.&&{-rgw,p-} (a2_rG9 ==_aUp b2_rGb) ==_aUk a_rGd b_rGe = PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], /=_aUj, /=_aUq)] /=_aUq a_rGi b_rGj = PrelBase.not{-rhu,p-} ==_aUh a_rGi b_rGj d.Eq_aMY = ({-dict-} [] [==_aUi, /=_aUj]) AbsBinds [taTP, taTQ, taTR] [] [([taTP, taTQ, taTR], $d2{-rTX,x-}, d.Eval_aPk)] d.Eval_aPk = ({-dict-} [] []) AbsBinds [taPy, taPz, taPA] [d.Ord_aTt, d.Ord_aTu, d.Ord_aTv, d.Eq_aTw] [([taPy, taPz, taPA], $d3{-rTY,x-}, d.Ord_aPs)] d.Eq_aTs = d.Eq_aTw d.Ord_aSg = d.Ord_aTt d.Ord_aSh = d.Ord_aTu d.Ord_aSi = d.Ord_aTv compare_aUr = compare_aUx compare_aUs = compare_aUx compare_aUt = compare_aUx compare_aUu = compare_aUx compare_aUv = compare_aUx compare_aUw = compare_aUx AbsBinds [] [] [([], compare_aUx, compare_aUE)] compare_aUE a_rHb b_rHc = case con2tag_Foo#_rFK [taPA, taPy, taPz] a_rHb of a#_rHZ -> case con2tag_Foo#_rFK [taPA, taPy, taPz] b_rHc of b#_rI1 -> if a#_rHZ GHC.==#{-79,w-}{I} b#_rI1 then case cmp_eq_aUF a_rHb b_rHc of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} else if a#_rHZ GHC.<#{-7b,w-}{I} b#_rI1 then PrelBase.LT{-rb7,p-}{i} else PrelBase.GT{-rb8,p-}{i} where {- nonrec -} AbsBinds [taRs, taRt, taRA] [d.Ord_aRI, d.Ord_aRK, d.Ord_aRM] [([taRs, taRt, taRA], cmp_eq_rHe, cmp_eq_aUG)] compare_aUH = PrelBase.compare{-rgL,p-} taRs d.Ord_aRI compare_aUI = compare_aUH compare_aUJ = PrelBase.compare{-rgL,p-} taRt d.Ord_aRK compare_aUK = PrelBase.compare{-rgL,p-} taRA d.Ord_aRM compare_aUL = compare_aUJ compare_aUM = compare_aUJ compare_aUN = compare_aUK compare_aUO = compare_aUK cmp_eq_aUG (MkFoo1{-rk,x-}{i} a1_rHg a2_rHh) (MkFoo1{-rk,x-}{i} b1_rHi b2_rHj) = case compare_aUH a1_rHg b1_rHi of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> case compare_aUI a2_rHh b2_rHj of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} cmp_eq_aUG (:##{-rj,x-}{i} a1_rHr a2_rHs) (:##{-rj,x-}{i} b1_rHt b2_rHu) = case compare_aUJ a1_rHr b1_rHt of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> case compare_aUK a2_rHs b2_rHu of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} cmp_eq_aUG (MkFoo3{-rm,x-}{i} a1_rHC a2_rHD) (MkFoo3{-rm,x-}{i} b1_rHE b2_rHF) = case compare_aUL a1_rHC b1_rHE of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> case compare_aUM a2_rHD b2_rHF of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} cmp_eq_aUG (:***{-ro,x-}{i} a1_rHN a2_rHO) (:***{-ro,x-}{i} b1_rHP b2_rHQ) = case compare_aUN a1_rHN b1_rHP of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> case compare_aUO a2_rHO b2_rHQ of PrelBase.LT{-rb7,p-}{i} -> PrelBase.LT{-rb7,p-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.GT{-rb8,p-}{i} cmp_eq_aUG _ _ = Error.error{-87,w-} PrelBase.Ordering{-3n,p-} "Urk! in TcGenDeriv" {- nonrec -} cmp_eq_aUF = cmp_eq_rHe [taPy, taPz, taPA] [d.Ord_aSg, d.Ord_aSh, d.Ord_aSi] {- nonrec -} AbsBinds [] [] [([], <_aUy, <_aUP)] <_aUP a_rGp b_rGq = case compare_aUr a_rGp b_rGq of PrelBase.LT{-rb7,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], <=_aUz, <=_aUQ)] <=_aUQ a_rGx b_rGy = case compare_aUs a_rGx b_rGy of PrelBase.LT{-rb7,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.False{-58,w-}{i} AbsBinds [] [] [([], >=_aUA, >=_aUR)] >=_aUR a_rGF b_rGG = case compare_aUt a_rGF b_rGG of PrelBase.LT{-rb7,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.True{-5E,w-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.True{-5E,w-}{i} AbsBinds [] [] [([], >_aUB, >_aUS)] >_aUS a_rGN b_rGO = case compare_aUu a_rGN b_rGO of PrelBase.LT{-rb7,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.EQ{-r4n,p-}{i} -> PrelBase.False{-58,w-}{i} PrelBase.GT{-rb8,p-}{i} -> PrelBase.True{-5E,w-}{i} AbsBinds [] [] [([], max_aUC, max_aUT)] max_aUT a_rGV b_rGW = case compare_aUv a_rGV b_rGW of PrelBase.LT{-rb7,p-}{i} -> b_rGW PrelBase.EQ{-r4n,p-}{i} -> a_rGV PrelBase.GT{-rb8,p-}{i} -> a_rGV AbsBinds [] [] [([], min_aUD, min_aUU)] min_aUU a_rH3 b_rH4 = case compare_aUw a_rH3 b_rH4 of PrelBase.LT{-rb7,p-}{i} -> a_rH3 PrelBase.EQ{-r4n,p-}{i} -> b_rH4 PrelBase.GT{-rb8,p-}{i} -> b_rH4 d.Ord_aPs = ({-dict-} [d.Eq_aTs] [compare_aUx, <_aUy, <=_aUz, >=_aUA, >_aUB, max_aUC, min_aUD]) scsel_Bar2Print002Bar{-aTZ,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1 AbsBinds [taTS] [d.Bar2_aTL] [] meth1{-r4B,x-} = _/\_ t12 -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B1;} /////{-r4C,x-} = _/\_ t12 -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B2;} meth2{-r4D,x-} = _/\_ t12 -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B3;} AbsBinds [taTT] [d.Bar_aTO] [] ghc: module version changed to 1; reason: no old .hi file _interface_ Print002 1 _instance_modules_ Addr ArrBase Foreign IO PrelNum _usages_ PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d33 1 $d35 1 $d38 1 $d40 1 $d42 1 $d46 1 $d47 1 $d50 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; PrelNum 1 :: $d17 1 $d18 1; _exports_ Print002 .... ..... <<<< f1 f1a f2 f2a f3a f3b f3c f3d Bar(meth1 ///// meth2) Bar2 Foo(MkFoo1 :## MkFoo3 :***); _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 .... _:_ _forall_ [ta tb tc] => tb -> tb -> Foo ta tb tc ;; 1 ..... _:_ _forall_ [ta tb tc] => tb -> tb -> Foo ta tb tc ;; 1 <<<< _:_ _forall_ [ta tb tc] => tc -> tc -> Foo ta tb tc ;; 1 class Bar a where {meth1 :: a -> a -> PrelBase.Bool; ///// :: a -> a -> PrelBase.Bool; meth2 :: _forall_ [b] => a -> b -> PrelBase.Bool} ; 1 class {Bar a} => Bar2 a ; 1 data Foo a b c = MkFoo1 a a | :## b c | MkFoo3 b b | :*** c c ; 1 f1 _:_ _forall_ [ta tb tc] => ta -> ta -> Foo ta tb tc ;; 1 f1a _:_ _forall_ [ta tb tc] => ta -> ta -> Foo ta tb tc ;; 1 f2 _:_ _forall_ [ta tb tc] => tb -> tc -> Foo ta tb tc ;; 1 f2a _:_ _forall_ [ta tb tc] => tb -> tc -> Foo ta tb tc ;; 1 f3a _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;; 1 f3b _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;; 1 f3c _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;; 1 f3d _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;;