================================================================================ Typechecked: {- nonrec -} {- nonrec -} MkFoo1{-rk,x-}{i} = _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 -> MkFoo1{-rk,x-}{i} {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2} :##{-rj,x-}{i} = _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 -> :##{-rj,x-}{i} {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2} MkFoo3{-rm,x-}{i} = _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 -> MkFoo3{-rm,x-}{i} {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2} :***{-ro,x-}{i} = _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 -> :***{-ro,x-}{i} {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2} {- nonrec -} scsel_Bar2Print002Bar{-aVQ,x-} = _/\_ a{-r4n-} -> \ tpl_B1 -> tpl_B1 {- nonrec -} {- nonrec -} meth1{-r4R,x-} = _/\_ a{-r4q-} -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B1;} /////{-r4Q,x-} = _/\_ a{-r4q-} -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B2;} meth2{-r4P,x-} = _/\_ a{-r4q-} -> \ tpl_B1 -> case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3 -> tpl_B3;} {- nonrec -} AbsBinds [a{-aVq-}] [d.Bar_aVj] [([a{-aVq-}], $mmeth1{-rLc,x-}, meth1_aVl)] AbsBinds [] [] [([], meth1_aVl, meth1_aVn)] meth1_aVn = GHCerr.noDefaultMethodError{-8k,p-} (a{-aVq-} -> a{-aVq-} -> PrelBase.Bool{-34,p-}) "Class Bar Method meth1" AbsBinds [a{-aVq-}] [d.Bar_aVt] [([a{-aVq-}], $m/////{-rLb,x-}, /////_aVv)] AbsBinds [] [] [([], /////_aVv, /////_aVx)] /////_aVx = GHCerr.noDefaultMethodError{-8k,p-} (a{-aVq-} -> a{-aVq-} -> PrelBase.Bool{-34,p-}) "Class Bar Method /////" AbsBinds [a{-aVq-}] [d.Bar_aVC] [([a{-aVq-}], $mmeth2{-rLa,x-}, meth2_aVF)] AbsBinds [b{-aVM-}] [] [([b{-aVM-}], meth2_aVF, meth2_aVI)] meth2_aVI = GHCerr.noDefaultMethodError{-8k,p-} (a{-aVq-} -> b{-aVM-} -> PrelBase.Bool{-34,p-}) "Class Bar Method meth2" {- rec -} AbsBinds [a{-aOK-}, b{-aON-}, c{-aOQ-}] [d.Eq_aQB, d.Eq_aQC, d.Eq_aQD] [([a{-aOK-}, b{-aON-}, c{-aOQ-}], $d1{-rVR,x-}, d.Eq_aOA)] d.Eq_aQH = d.Eq_aQB ==_aVX = PrelBase.=={-8Y,p-} a{-aOK-} d.Eq_aQH d.Eq_aQJ = d.Eq_aQC ==_aVW = PrelBase.=={-8Y,p-} b{-aON-} d.Eq_aQJ d.Eq_aQL = d.Eq_aQD ==_aVV = PrelBase.=={-8Y,p-} c{-aOQ-} d.Eq_aQL ==_aVU = ==_aVT AbsBinds [] [] [([], ==_aVT, ==_aOD)] ==_aW2 = ==_aVX ==_aW1 = ==_aVW ==_aW0 = ==_aVW ==_aVZ = ==_aVV ==_aVY = ==_aVV ==_aOD (MkFoo1{-rk,x-}{i} a1_rIv a2_rIw) (MkFoo1{-rk,x-}{i} b1_rIy b2_rIz) = (a1_rIv ==_aVX b1_rIy) PrelBase.&&{-re5,p-} (a2_rIw ==_aW2 b2_rIz) ==_aOD (:##{-rj,x-}{i} a1_rIB a2_rIC) (:##{-rj,x-}{i} b1_rIE b2_rIF) = (a1_rIB ==_aVW b1_rIE) PrelBase.&&{-re5,p-} (a2_rIC ==_aVV b2_rIF) ==_aOD (MkFoo3{-rm,x-}{i} a1_rIH a2_rII) (MkFoo3{-rm,x-}{i} b1_rIK b2_rIL) = (a1_rIH ==_aW1 b1_rIK) PrelBase.&&{-re5,p-} (a2_rII ==_aW0 b2_rIL) ==_aOD (:***{-ro,x-}{i} a1_rIN a2_rIO) (:***{-ro,x-}{i} b1_rIQ b2_rIR) = (a1_rIN ==_aVZ b1_rIQ) PrelBase.&&{-re5,p-} (a2_rIO ==_aVY b2_rIR) ==_aOD a_rIT b_rIV = PrelBase.False{-58,p-}{i} AbsBinds [] [] [([], /=_aVS, /=_aQu)] /=_aQu a_rIZ b_rJ1 = PrelBase.not{-rgK,p-} ==_aVU a_rIZ b_rJ1 d.Eq_aOA = ({-dict-} [] [==_aVT, /=_aVS]) {- rec -} AbsBinds [a{-aVN-}, b{-aVP-}, c{-aVO-}] [] [([a{-aVN-}, b{-aVP-}, c{-aVO-}], $d2{-rW3,x-}, d.Eval_aQW)] d.Eval_aQW = ({-dict-} [] []) {- rec -} AbsBinds [a{-aRa-}, b{-aRb-}, c{-aRc-}] [d.Ord_aV0, d.Ord_aV1, d.Ord_aV2, d.Eq_aV3] [([a{-aRa-}, b{-aRb-}, c{-aRc-}], $d3{-rW4,x-}, d.Ord_aR4)] d.Eq_aV4 = d.Eq_aV3 d.Ord_aTL = d.Ord_aV0 d.Ord_aTM = d.Ord_aV1 d.Ord_aTN = d.Ord_aV2 compare_aWh = compare_aWb compare_aWg = compare_aWb compare_aWf = compare_aWb compare_aWe = compare_aWb compare_aWd = compare_aWb compare_aWc = compare_aWb AbsBinds [] [] [([], compare_aWb, compare_aR7)] compare_aR7 a_rJZ b_rK1 = case con2tag_Foo#_rIm [c{-aRc-}, a{-aRa-}, b{-aRb-}] a_rJZ of a#_rKT -> case con2tag_Foo#_rIm [c{-aRc-}, a{-aRa-}, b{-aRb-}] b_rK1 of b#_rKV -> if a#_rKT GHC.==#{-79,p-}{I} b#_rKV then case cmp_eq_aWi a_rJZ b_rK1 of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.EQ{-r4C,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} else if a#_rKT GHC.<#{-7b,p-}{I} b#_rKV then PrelBase.LT{-rc8,p-}{i} else PrelBase.GT{-rc9,p-}{i} where {- nonrec -} AbsBinds [c{-aST-}, a{-aT4-}, b{-aT5-}] [d.Ord_aTe, d.Ord_aTg, d.Ord_aTi] [([c{-aST-}, a{-aT4-}, b{-aT5-}], cmp_eq_rK3, cmp_eq_aRg)] compare_aWq = PrelBase.compare{-rei,p-} a{-aT4-} d.Ord_aTe compare_aWp = compare_aWq compare_aWo = PrelBase.compare{-rei,p-} b{-aT5-} d.Ord_aTg compare_aWn = PrelBase.compare{-rei,p-} c{-aST-} d.Ord_aTi compare_aWm = compare_aWo compare_aWl = compare_aWo compare_aWk = compare_aWn compare_aWj = compare_aWn cmp_eq_aRg (MkFoo1{-rk,x-}{i} a1_rK5 a2_rK6) (MkFoo1{-rk,x-}{i} b1_rK8 b2_rK9) = case compare_aWq a1_rK5 b1_rK8 of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> case compare_aWp a2_rK6 b2_rK9 of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.EQ{-r4C,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} cmp_eq_aRg (:##{-rj,x-}{i} a1_rKh a2_rKi) (:##{-rj,x-}{i} b1_rKk b2_rKl) = case compare_aWo a1_rKh b1_rKk of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> case compare_aWn a2_rKi b2_rKl of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.EQ{-r4C,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} cmp_eq_aRg (MkFoo3{-rm,x-}{i} a1_rKt a2_rKu) (MkFoo3{-rm,x-}{i} b1_rKw b2_rKx) = case compare_aWm a1_rKt b1_rKw of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> case compare_aWl a2_rKu b2_rKx of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.EQ{-r4C,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} cmp_eq_aRg (:***{-ro,x-}{i} a1_rKF a2_rKG) (:***{-ro,x-}{i} b1_rKI b2_rKJ) = case compare_aWk a1_rKF b1_rKI of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> case compare_aWj a2_rKG b2_rKJ of PrelBase.LT{-rc8,p-}{i} -> PrelBase.LT{-rc8,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.EQ{-r4C,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.GT{-rc9,p-}{i} cmp_eq_aRg _ _ = IOBase.error{-87,p-} PrelBase.Ordering{-3o,p-} "Urk! in TcGenDeriv" {- nonrec -} cmp_eq_aWi = cmp_eq_rK3 [c{-aRc-}, a{-aRa-}, b{-aRb-}] [d.Ord_aTL, d.Ord_aTM, d.Ord_aTN] AbsBinds [] [] [([], <_aWa, <_aTR)] <_aTR a_rJ7 b_rJ9 = case compare_aWh a_rJ7 b_rJ9 of PrelBase.LT{-rc8,p-}{i} -> PrelBase.True{-5E,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.False{-58,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.False{-58,p-}{i} AbsBinds [] [] [([], <=_aW9, <=_aU3)] <=_aU3 a_rJg b_rJi = case compare_aWg a_rJg b_rJi of PrelBase.LT{-rc8,p-}{i} -> PrelBase.True{-5E,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.True{-5E,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.False{-58,p-}{i} AbsBinds [] [] [([], >=_aW8, >=_aUf)] >=_aUf a_rJp b_rJr = case compare_aWf a_rJp b_rJr of PrelBase.LT{-rc8,p-}{i} -> PrelBase.False{-58,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.True{-5E,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.True{-5E,p-}{i} AbsBinds [] [] [([], >_aW7, >_aUr)] >_aUr a_rJy b_rJA = case compare_aWe a_rJy b_rJA of PrelBase.LT{-rc8,p-}{i} -> PrelBase.False{-58,p-}{i} PrelBase.EQ{-r4C,p-}{i} -> PrelBase.False{-58,p-}{i} PrelBase.GT{-rc9,p-}{i} -> PrelBase.True{-5E,p-}{i} AbsBinds [] [] [([], max_aW6, max_aUD)] max_aUD a_rJH b_rJJ = case compare_aWd a_rJH b_rJJ of PrelBase.LT{-rc8,p-}{i} -> b_rJJ PrelBase.EQ{-r4C,p-}{i} -> a_rJH PrelBase.GT{-rc9,p-}{i} -> a_rJH AbsBinds [] [] [([], min_aW5, min_aUQ)] min_aUQ a_rJQ b_rJS = case compare_aWc a_rJQ b_rJS of PrelBase.LT{-rc8,p-}{i} -> a_rJQ PrelBase.EQ{-r4C,p-}{i} -> b_rJS PrelBase.GT{-rc9,p-}{i} -> b_rJS d.Ord_aR4 = ({-dict-} [d.Eq_aV4] [compare_aWb, <_aWa, <=_aW9, >=_aW8, >_aW7, max_aW6, min_aW5]) {- nonrec -} {- nonrec -} AbsBinds [a{-aLh-}] [d.Bar_aLn] [([a{-aLh-}], f3d{-r4D,x-}, f3d_aL9)] /////_aWr = /////{-r4Q,x-} a{-aLh-} d.Bar_aLn f3d_aL9 x_r4j y_r4l = x_r4j /////_aWr y_r4l {- nonrec -} {- nonrec -} AbsBinds [a{-aLu-}] [d.Bar_aLA] [([a{-aLu-}], f3c{-r4E,x-}, f3c_aLp)] /////_aWs = /////{-r4Q,x-} a{-aLu-} d.Bar_aLA f3c_aLp x_r4f y_r4h = /////_aWs x_r4f y_r4h {- nonrec -} {- nonrec -} AbsBinds [a{-aLH-}] [d.Bar_aLN] [([a{-aLH-}], f3b{-r4F,x-}, f3b_aLC)] meth1_aWt = meth1{-r4R,x-} a{-aLH-} d.Bar_aLN f3b_aLC x_r4b y_r4d = x_r4b meth1_aWt y_r4d {- nonrec -} {- nonrec -} AbsBinds [a{-aLU-}] [d.Bar_aM0] [([a{-aLU-}], f3a{-r4G,x-}, f3a_aLP)] meth1_aWu = meth1{-r4R,x-} a{-aLU-} d.Bar_aM0 f3a_aLP x_r47 y_r49 = meth1_aWu x_r47 y_r49 {- nonrec -} {- nonrec -} AbsBinds [c{-aMk-}, a{-aMn-}, b{-aMo-}] [] [([c{-aMk-}, a{-aMn-}, b{-aMo-}], <<<<{-r4H,x-}, <<<<_aM2)] <<<<_aM2 x_r3Z y_r41 = :***{-ro,x-}{i} [a{-aMn-}, b{-aMo-}, c{-aMk-}] x_r3Z y_r41 <<<<_aM2 x_r43 y_r45 = :***{-ro,x-}{i} [a{-aMn-}, b{-aMo-}, c{-aMk-}] x_r43 y_r45 {- nonrec -} {- nonrec -} AbsBinds [b{-aMw-}, a{-aMA-}, c{-aMC-}] [] [([b{-aMw-}, a{-aMA-}, c{-aMC-}], .....{-r4I,x-}, ....._aMq)] ....._aMq x_r3V y_r3X = MkFoo3{-rm,x-}{i} [a{-aMA-}, b{-aMw-}, c{-aMC-}] x_r3V y_r3X {- nonrec -} {- nonrec -} AbsBinds [b{-aMK-}, a{-aMO-}, c{-aMQ-}] [] [([b{-aMK-}, a{-aMO-}, c{-aMQ-}], ....{-r4J,x-}, ...._aME)] ...._aME x_r3R y_r3T = MkFoo3{-rm,x-}{i} [a{-aMO-}, b{-aMK-}, c{-aMQ-}] x_r3R y_r3T {- nonrec -} {- nonrec -} AbsBinds [b{-aMY-}, c{-aN1-}, a{-aN4-}] [] [([b{-aMY-}, c{-aN1-}, a{-aN4-}], f2a{-r4K,x-}, f2a_aMS)] f2a_aMS x_r3N y_r3P = :##{-rj,x-}{i} [a{-aN4-}, b{-aMY-}, c{-aN1-}] x_r3N y_r3P {- nonrec -} {- nonrec -} AbsBinds [b{-aNc-}, c{-aNf-}, a{-aNi-}] [] [([b{-aNc-}, c{-aNf-}, a{-aNi-}], f2{-r4L,x-}, f2_aN6)] f2_aN6 x_r3J y_r3L = :##{-rj,x-}{i} [a{-aNi-}, b{-aNc-}, c{-aNf-}] x_r3J y_r3L {- nonrec -} {- nonrec -} AbsBinds [a{-aNp-}, b{-aNu-}, c{-aNw-}] [] [([a{-aNp-}, b{-aNu-}, c{-aNw-}], f1a{-r4M,x-}, f1a_aNk)] f1a_aNk x_r3F y_r3H = MkFoo1{-rk,x-}{i} [a{-aNp-}, b{-aNu-}, c{-aNw-}] x_r3F y_r3H {- nonrec -} {- nonrec -} AbsBinds [a{-aND-}, b{-aNI-}, c{-aNK-}] [] [([a{-aND-}, b{-aNI-}, c{-aNK-}], f1{-r4N,x-}, f1_aNy)] f1_aNy x_r3B y_r3D = MkFoo1{-rk,x-}{i} [a{-aND-}, b{-aNI-}, c{-aNK-}] x_r3B y_r3D {- nonrec -} {- nonrec -} AbsBinds [c{-aOo-}, a{-aOr-}, b{-aOs-}] [] [([c{-aOo-}, a{-aOr-}, b{-aOs-}], con2tag_Foo#_rIm, con2tag_Foo#_aNM)] con2tag_Foo#_aNM (MkFoo1{-rk,x-}{i} _ _) = 0# con2tag_Foo#_aNM (:##{-rj,x-}{i} _ _) = 1# con2tag_Foo#_aNM (MkFoo3{-rm,x-}{i} _ _) = 2# con2tag_Foo#_aNM (:***{-ro,x-}{i} _ _) = 3# {- nonrec -} Print002.hs:35: Warning: Pattern match(es) completely overlapped in the definition of function `<<<<' ghc: module version changed to 1; reason: no old .hi file _interface_ Print002 1 _instance_modules_ ArrBase IO PrelNum _usages_ PrelBase 1 :: $d14 1 $d15 1 $d32 1 $d34 1 $d37 1 $d39 1 $d41 1 $d45 1 $d46 1 $d49 1 $d51 1 $d6 1 $d7 1 $m/= 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 $m///// _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;; 1 $mmeth1 _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;; 1 $mmeth2 _:_ _forall_ [a] {Bar a} => _forall_ [b] => a -> b -> PrelBase.Bool ;; 1 .... _:_ _forall_ [a b c] => a -> a -> Foo b a c ;; 1 ..... _:_ _forall_ [a b c] => a -> a -> Foo b a c ;; 1 <<<< _:_ _forall_ [a b c] => a -> a -> Foo b c a ;; 1 class Bar r4q where {meth1 :: r4q -> r4q -> PrelBase.Bool; ///// :: r4q -> r4q -> PrelBase.Bool; meth2 :: _forall_ [r4w] => r4q -> r4w -> PrelBase.Bool} ; class {Bar r4n} => Bar2 r4n ; 1 data Foo r4z r4A r4B = MkFoo1 r4z r4z | :## r4A r4B | MkFoo3 r4A r4A | :*** r4B r4B ; 1 f1 _:_ _forall_ [a b c] => a -> a -> Foo a b c ;; 1 f1a _:_ _forall_ [a b c] => a -> a -> Foo a b c ;; 1 f2 _:_ _forall_ [a b c] => a -> b -> Foo c a b ;; 1 f2a _:_ _forall_ [a b c] => a -> b -> Foo c a b ;; 1 f3a _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;; 1 f3b _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;; 1 f3c _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;; 1 f3d _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;