RnState {rn_modid = "Main", rn_lvs = [Level {lv_prefix = "Main", lv_dict = fromList [("$","Main.$"),("()","Prim.()"),("++","Main.++"),(".","Main.."),(":","Prim.:"),("<=","Main.<="),(">","Main.>"),(">>","Main.>>"),(">>=","Main.>>="),("False","Prim.False"),("IO","Main.IO"),("Monad","Main.Monad"),("PrimGt","Prim.>"),("PrimLe","Prim.<="),("Show","Prim.Show"),("True","Prim.True"),("[]","Prim.[]"),("concatMap","Main.concatMap"),("error","Prim.error"),("fail","Main.fail"),("foldr","Main.foldr"),("main","Main.main"),("primBindIO","Prim.primBindIO"),("primFailIO","Prim.primFailIO"),("primRetIO","Prim.primRetIO"),("putStrLn","Prim.putStrLn"),("qsort","Main.qsort"),("return","Main.return"),("show","Prim.show")], lv_num = 14}], rn_tenv = fromList [], rn_ifxenv = fromList [("Main.$",RightAssoc 0),("Main.++",RightAssoc 5),("Main..",RightAssoc 9),("Main.<=",NoAssoc 4),("Main.>",NoAssoc 4),("Main.>>",LeftAssoc 1),("Main.>>=",LeftAssoc 1)], rn_ce = ClassEnv {ce_map = fromList [("Bounded",([],[])),("Enum",([],[])),("Eq",([],[])),("Floating",(["Fractional"],[])),("Fractional",(["Num"],[])),("Functor",([],[])),("Integral",(["Real","Enum"],[])),("Main.Monad",([],[[] :=> IsIn "Main.Monad" (TCon (Tycon "Main.IO" (Kfun Star Star)))])),("Monad",([],[])),("Num",(["Eq","Prim.Show"],[[] :=> IsIn "Num" (TCon (Tycon "Int" Star)),[] :=> IsIn "Num" (TCon (Tycon "Char" Star))])),("Ord",(["Eq"],[[IsIn "Ord" (TVar (Tyvar "a" Star)),IsIn "Ord" (TVar (Tyvar "b" Star))] :=> IsIn "Ord" (TAp (TAp (TCon (Tycon "(,)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TVar (Tyvar "b" Star))),[] :=> IsIn "Ord" (TCon (Tycon "Int" Star)),[] :=> IsIn "Ord" (TCon (Tycon "Char" Star)),[] :=> IsIn "Ord" (TCon (Tycon "()" Star))])),("Prim.Show",([],[[IsIn "Prim.Show" (TVar (Tyvar "a" Star))] :=> IsIn "Prim.Show" (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star))),[] :=> IsIn "Prim.Show" (TCon (Tycon "Int" Star)),[] :=> IsIn "Prim.Show" (TCon (Tycon "Char" Star))])),("Read",([],[])),("Real",(["Num","Ord"],[])),("RealFloat",(["RealFrac","Floating"],[])),("RealFrac",(["Real","Fractional"],[]))], defaults = [TCon (Tycon "Integer" Star),TCon (Tycon "Double" Star)]}, rn_cms = ["Prim.()" :>: Forall [] ([] :=> TCon (Tycon "()" Star)),"Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0)),"Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0)))),"Prim.show" :>: Forall [Star] ([IsIn "Prim.Show" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))),"Prim.False" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star)),"Prim.True" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star)),"Prim.<=" :>: Forall [Star] ([IsIn "Ord" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TCon (Tycon "Bool" Star)))),"Prim.>" :>: Forall [Star] ([IsIn "Ord" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TCon (Tycon "Bool" Star)))),"Prim.primRetIO" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),"Prim.primBindIO" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))),"Prim.primFailIO" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),"Prim.error" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TGen 0)),"Prim.putStrLn" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TCon (Tycon "()" Star))))], rn_tbs = [("Main.return",Just ([IsIn "Main.Monad" (TVar (Tyvar "m" (Kfun Star Star)))] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "a" Star)))),[]),("Main.>>=",Just ([IsIn "Main.Monad" (TVar (Tyvar "m" (Kfun Star Star)))] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "b" Star))))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "b" Star))))),[]),("Main.>>",Just ([IsIn "Main.Monad" (TVar (Tyvar "m" (Kfun Star Star)))] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "b" Star)))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "b" Star))))),[]),("Main.fail",Just ([IsIn "Main.Monad" (TVar (Tyvar "m" (Kfun Star Star)))] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TVar (Tyvar "m" (Kfun Star Star))) (TVar (Tyvar "a" Star)))),[]),("Main.>>",Nothing,[([PVar "Main.l0.p",PVar "Main.l0.q"],Ap (Ap (Var "Main.>>=") (Var "Main.l0.p")) (Let ([],[[("Main.l0.l0.F",[([PWildcard],Var "Main.l0.q")])]]) (Var "Main.l0.l0.F")))]),("Main.fail",Nothing,[([PVar "Main.l1.s"],Ap (Var "Prim.error") (Var "Main.l1.s"))]),("Main.>>=",Nothing,[([],Ap (Var "Prim.error") (Lit (LitStr ">>= is not defined.")))]),("Main.%IO.return",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TVar (Tyvar "a" Star)))),[([],Const ("Prim.primRetIO" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0)))))]),("Main.%IO.>>=",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TVar (Tyvar "b" Star))))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TVar (Tyvar "b" Star))))),[([],Const ("Prim.primBindIO" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1))))))]),("Main.%IO.fail",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TVar (Tyvar "a" Star)))),[([PVar "Main.%IO.l2.s"],Ap (Var "Prim.primFailIO") (Var "Main.%IO.l2.s"))]),("Main.qsort",Nothing,[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))]),("Main.qsort",Nothing,[([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l4.x",PVar "Main.l4.xs"]],Let ([],[[("Main.l4.l0.larger",[([],Let ([],[[("Main.l4.l0.l1.l0.OK",[([PVar "Main.l4.l0.l1.l0.l0.b"],Let ([],[[("Main.l4.l0.l1.l0.l0.l0.F",[([PCon ("Prim.True" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Ap (Ap (Var "Prim.:") (Var "Main.l4.l0.l1.l0.l0.b")) (Var "Prim.[]")),([PCon ("Prim.False" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))])]]) (Ap (Var "Main.l4.l0.l1.l0.l0.l0.F") (Ap (Ap (Var "Main.>") (Var "Main.l4.l0.l1.l0.l0.b")) (Var "Main.l4.x"))))])]]) (Ap (Ap (Var "Main.concatMap") (Var "Main.l4.l0.l1.l0.OK")) (Var "Main.l4.xs")))]),("Main.l4.l0.smaller",[([],Let ([],[[("Main.l4.l0.l0.l0.OK",[([PVar "Main.l4.l0.l0.l0.l0.a"],Let ([],[[("Main.l4.l0.l0.l0.l0.l0.F",[([PCon ("Prim.True" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Ap (Ap (Var "Prim.:") (Var "Main.l4.l0.l0.l0.l0.a")) (Var "Prim.[]")),([PCon ("Prim.False" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))])]]) (Ap (Var "Main.l4.l0.l0.l0.l0.l0.F") (Ap (Ap (Var "Main.<=") (Var "Main.l4.l0.l0.l0.l0.a")) (Var "Main.l4.x"))))])]]) (Ap (Ap (Var "Main.concatMap") (Var "Main.l4.l0.l0.l0.OK")) (Var "Main.l4.xs")))])]]) (Ap (Ap (Var "Main.++") (Ap (Var "Main.qsort") (Var "Main.l4.l0.smaller"))) (Ap (Ap (Var "Main.++") (Ap (Ap (Var "Prim.:") (Var "Main.l4.x")) (Var "Prim.[]"))) (Ap (Var "Main.qsort") (Var "Main.l4.l0.larger")))))]),("Main.main",Nothing,[([],Let ([],[[("Main.l5.l0.helo",[([],Lit (LitStr "Hello, World!"))])]]) (Ap (Ap (Var "Main.>>") (Ap (Var "Prim.putStrLn") (Var "Main.l5.l0.helo"))) (Ap (Ap (Var "Main.>>") (Ap (Ap (Var "Main.$") (Ap (Ap (Var "Main..") (Var "Prim.putStrLn")) (Var "Prim.show"))) (Ap (Var "Main.qsort") (Ap (Ap (Var "Prim.:") (Lit (LitInt 3))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 1))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 4))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 1))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 5))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 9))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 2))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 6))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 5))) (Var "Prim.[]"))))))))))))) (Ap (Ap (Var "Main.$") (Var "Prim.putStrLn")) (Ap (Ap (Var "Main.$") (Var "Prim.show")) (Ap (Var "Main.qsort") (Var "Main.l5.l0.helo")))))))]),("Main.$",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TVar (Tyvar "b" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TVar (Tyvar "b" Star)))),[]),("Main.$",Nothing,[([PVar "Main.l6.f",PVar "Main.l6.x"],Ap (Var "Main.l6.f") (Var "Main.l6.x"))]),("Main..",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "b" Star))) (TVar (Tyvar "c" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TVar (Tyvar "b" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TVar (Tyvar "c" Star))))),[]),("Main..",Nothing,[([PVar "Main.l7.f",PVar "Main.l7.g"],Let ([],[[("Main.l7.l0.F",[([PVar "Main.l7.l0.l0.x"],Ap (Var "Main.l7.f") (Ap (Var "Main.l7.g") (Var "Main.l7.l0.l0.x")))])]]) (Var "Main.l7.l0.F"))]),("Main.++",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star))))),[]),("Main.++",Nothing,[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) [],PVar "Main.l8.ys"],Var "Main.l8.ys")]),("Main.++",Nothing,[([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l9.x",PVar "Main.l9.xs"],PVar "Main.l9.ys"],Ap (Ap (Var "Main.++") (Ap (Ap (Var "Prim.:") (Var "Main.l9.x")) (Var "Main.l9.xs"))) (Var "Main.l9.ys"))]),("Main.concatMap",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "b" Star))))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "b" Star))))),[]),("Main.concatMap",Nothing,[([PVar "Main.l10.f"],Ap (Ap (Var "Main.foldr") (Ap (Ap (Var "Main..") (Var "Main.++")) (Var "Main.l10.f"))) (Var "Prim.[]"))]),("Main.foldr",Just ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "a" Star))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "b" Star))) (TVar (Tyvar "b" Star))))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar "b" Star))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar "a" Star)))) (TVar (Tyvar "b" Star))))),[]),("Main.foldr",Nothing,[([PVar "Main.l11.k",PVar "Main.l11.z"],Let ([],[[("Main.l11.l0.go",[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) []],Var "Main.l11.z"),([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l11.l0.l1.y",PVar "Main.l11.l0.l1.ys"]],Ap (Ap (Var "Main.l11.k") (Var "Main.l11.l0.l1.y")) (Ap (Var "Main.l11.l0.go") (Var "Main.l11.l0.l1.ys")))])]]) (Var "Main.l11.l0.go"))]),("Main.>",Nothing,[([PVar "Main.l12.a",PVar "Main.l12.b"],Ap (Ap (Var "Prim.>") (Var "Main.l12.a")) (Var "Main.l12.b"))]),("Main.<=",Nothing,[([PVar "Main.l13.a",PVar "Main.l13.b"],Ap (Ap (Var "Prim.<=") (Var "Main.l13.a")) (Var "Main.l13.b"))])], rn_tbstack = [], rn_kdict = fromList [("Main.Monad",Kfun Star Star)], rn_curInst = Nothing} [([("Main.foldr",Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TGen 1)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TGen 1)))),[([PVar "Main.l11.k",PVar "Main.l11.z"],Let ([],[[("Main.l11.l0.go",[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) []],Var "Main.l11.z"),([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l11.l0.l1.y",PVar "Main.l11.l0.l1.ys"]],Ap (Ap (Var "Main.l11.k") (Var "Main.l11.l0.l1.y")) (Ap (Var "Main.l11.l0.go") (Var "Main.l11.l0.l1.ys")))])]]) (Var "Main.l11.l0.go"))]),("Main.concatMap",Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 1)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 1)))),[([PVar "Main.l10.f"],Ap (Ap (Var "Main.foldr") (Ap (Ap (Var "Main..") (Var "Main.++")) (Var "Main.l10.f"))) (Var "Prim.[]"))]),("Main.++",Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0)))),[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) [],PVar "Main.l8.ys"],Var "Main.l8.ys"),([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l9.x",PVar "Main.l9.xs"],PVar "Main.l9.ys"],Ap (Ap (Var "Main.++") (Ap (Ap (Var "Prim.:") (Var "Main.l9.x")) (Var "Main.l9.xs"))) (Var "Main.l9.ys"))]),("Main..",Forall [Star,Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 2)) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 2)) (TGen 1)))),[([PVar "Main.l7.f",PVar "Main.l7.g"],Let ([],[[("Main.l7.l0.F",[([PVar "Main.l7.l0.l0.x"],Ap (Var "Main.l7.f") (Ap (Var "Main.l7.g") (Var "Main.l7.l0.l0.x")))])]]) (Var "Main.l7.l0.F"))]),("Main.$",Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))),[([PVar "Main.l6.f",PVar "Main.l6.x"],Ap (Var "Main.l6.f") (Var "Main.l6.x"))]),("Main.%IO.fail",Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),[([PVar "Main.%IO.l2.s"],Ap (Var "Prim.primFailIO") (Var "Main.%IO.l2.s"))]),("Main.%IO.>>=",Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))),[([],Const ("Prim.primBindIO" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1))))))]),("Main.%IO.return",Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),[([],Const ("Prim.primRetIO" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0)))))]),("Main.>>=",Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TGen 0) (TGen 2)))) (TAp (TGen 0) (TGen 2)))),[([],Ap (Var "Prim.error") (Lit (LitStr ">>= is not defined.")))]),("Main.fail",Forall [Kfun Star Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TGen 0) (TGen 1))),[([PVar "Main.l1.s"],Ap (Var "Prim.error") (Var "Main.l1.s"))]),("Main.>>",Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 2))) (TAp (TGen 0) (TGen 2)))),[([PVar "Main.l0.p",PVar "Main.l0.q"],Ap (Ap (Var "Main.>>=") (Var "Main.l0.p")) (Let ([],[[("Main.l0.l0.F",[([PWildcard],Var "Main.l0.q")])]]) (Var "Main.l0.l0.F")))]),("Main.>>=",Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TGen 0) (TGen 2)))) (TAp (TGen 0) (TGen 2)))),[([],Ap (Var "Prim.error") (Lit (LitStr ">>= is not defined.")))]),("Main.fail",Forall [Kfun Star Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TGen 0) (TGen 1))),[([PVar "Main.l1.s"],Ap (Var "Prim.error") (Var "Main.l1.s"))]),("Main.>>",Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 2))) (TAp (TGen 0) (TGen 2)))),[([PVar "Main.l0.p",PVar "Main.l0.q"],Ap (Ap (Var "Main.>>=") (Var "Main.l0.p")) (Let ([],[[("Main.l0.l0.F",[([PWildcard],Var "Main.l0.q")])]]) (Var "Main.l0.l0.F")))])],[[("Main.<=",[([PVar "Main.l13.a",PVar "Main.l13.b"],Ap (Ap (Var "Prim.<=") (Var "Main.l13.a")) (Var "Main.l13.b"))]),("Main.>",[([PVar "Main.l12.a",PVar "Main.l12.b"],Ap (Ap (Var "Prim.>") (Var "Main.l12.a")) (Var "Main.l12.b"))]),("Main.main",[([],Let ([],[[("Main.l5.l0.helo",[([],Lit (LitStr "Hello, World!"))])]]) (Ap (Ap (Var "Main.>>") (Ap (Var "Prim.putStrLn") (Var "Main.l5.l0.helo"))) (Ap (Ap (Var "Main.>>") (Ap (Ap (Var "Main.$") (Ap (Ap (Var "Main..") (Var "Prim.putStrLn")) (Var "Prim.show"))) (Ap (Var "Main.qsort") (Ap (Ap (Var "Prim.:") (Lit (LitInt 3))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 1))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 4))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 1))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 5))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 9))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 2))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 6))) (Ap (Ap (Var "Prim.:") (Lit (LitInt 5))) (Var "Prim.[]"))))))))))))) (Ap (Ap (Var "Main.$") (Var "Prim.putStrLn")) (Ap (Ap (Var "Main.$") (Var "Prim.show")) (Ap (Var "Main.qsort") (Var "Main.l5.l0.helo")))))))]),("Main.qsort",[([PCon ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0)))),([PCon ("Prim.:" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))) [PVar "Main.l4.x",PVar "Main.l4.xs"]],Let ([],[[("Main.l4.l0.larger",[([],Let ([],[[("Main.l4.l0.l1.l0.OK",[([PVar "Main.l4.l0.l1.l0.l0.b"],Let ([],[[("Main.l4.l0.l1.l0.l0.l0.F",[([PCon ("Prim.True" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Ap (Ap (Var "Prim.:") (Var "Main.l4.l0.l1.l0.l0.b")) (Var "Prim.[]")),([PCon ("Prim.False" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))])]]) (Ap (Var "Main.l4.l0.l1.l0.l0.l0.F") (Ap (Ap (Var "Main.>") (Var "Main.l4.l0.l1.l0.l0.b")) (Var "Main.l4.x"))))])]]) (Ap (Ap (Var "Main.concatMap") (Var "Main.l4.l0.l1.l0.OK")) (Var "Main.l4.xs")))]),("Main.l4.l0.smaller",[([],Let ([],[[("Main.l4.l0.l0.l0.OK",[([PVar "Main.l4.l0.l0.l0.l0.a"],Let ([],[[("Main.l4.l0.l0.l0.l0.l0.F",[([PCon ("Prim.True" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Ap (Ap (Var "Prim.:") (Var "Main.l4.l0.l0.l0.l0.a")) (Var "Prim.[]")),([PCon ("Prim.False" :>: Forall [] ([] :=> TCon (Tycon "Bool" Star))) []],Const ("Prim.[]" :>: Forall [Star] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))))])]]) (Ap (Var "Main.l4.l0.l0.l0.l0.l0.F") (Ap (Ap (Var "Main.<=") (Var "Main.l4.l0.l0.l0.l0.a")) (Var "Main.l4.x"))))])]]) (Ap (Ap (Var "Main.concatMap") (Var "Main.l4.l0.l0.l0.OK")) (Var "Main.l4.xs")))])]]) (Ap (Ap (Var "Main.++") (Ap (Var "Main.qsort") (Var "Main.l4.l0.smaller"))) (Ap (Ap (Var "Main.++") (Ap (Ap (Var "Prim.:") (Var "Main.l4.x")) (Var "Prim.[]"))) (Ap (Var "Main.qsort") (Var "Main.l4.l0.larger")))))])]])] ["Main.<=" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Char" Star))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Char" Star))) (TCon (Tycon "Bool" Star)))),"Main.>" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Char" Star))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Char" Star))) (TCon (Tycon "Bool" Star)))),"Main.main" :>: Forall [] ([] :=> TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TCon (Tycon "()" Star))),"Main.qsort" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))),"Main.foldr" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TGen 1)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TGen 1)))),"Main.concatMap" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 1)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 1)))),"Main.++" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TGen 0)))),"Main.." :>: Forall [Star,Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 2)) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 2)) (TGen 1)))),"Main.$" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TGen 1))),"Main.%IO.fail" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),"Main.%IO.>>=" :>: Forall [Star,Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 1)))),"Main.%IO.return" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TAp (TCon (Tycon "Main.IO" (Kfun Star Star))) (TGen 0))),"Main.>>=" :>: Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TGen 0) (TGen 2)))) (TAp (TGen 0) (TGen 2)))),"Main.fail" :>: Forall [Kfun Star Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TGen 0) (TGen 1))),"Main.>>" :>: Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 2))) (TAp (TGen 0) (TGen 2)))),"Main.>>=" :>: Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 1)) (TAp (TGen 0) (TGen 2)))) (TAp (TGen 0) (TGen 2)))),"Main.fail" :>: Forall [Kfun Star Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star)))) (TAp (TGen 0) (TGen 1))),"Main.>>" :>: Forall [Kfun Star Star,Star,Star] ([IsIn "Main.Monad" (TGen 0)] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 1))) (TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TGen 0) (TGen 2))) (TAp (TGen 0) (TGen 2)))),"Main.l5.l0.helo" :>: Forall [] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TCon (Tycon "Char" Star))),"Main.l4.l0.l1.l0.l0.l0.F" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Bool" Star))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v102" Star)))),"Main.l4.l0.l1.l0.OK" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar ".v11" Star))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v11" Star)))),"Main.l4.l0.l0.l0.l0.l0.F" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TCon (Tycon "Bool" Star))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v119" Star)))),"Main.l4.l0.l0.l0.OK" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar ".v6" Star))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v6" Star)))),"Main.l4.l0.larger" :>: Forall [] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v124" Star))),"Main.l4.l0.smaller" :>: Forall [] ([] :=> TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v124" Star))),"Main.l11.l0.go" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TAp (TCon (Tycon "[]" (Kfun Star Star))) (TVar (Tyvar ".v145" Star)))) (TVar (Tyvar ".v152" Star))),"Main.l7.l0.F" :>: Forall [] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TVar (Tyvar ".v188" Star))) (TVar (Tyvar ".v190" Star))),"Main.l0.l0.F" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TVar (Tyvar ".v220" Star))),"Main.l0.l0.F" :>: Forall [Star] ([] :=> TAp (TAp (TCon (Tycon "(->)" (Kfun Star (Kfun Star Star)))) (TGen 0)) (TVar (Tyvar ".v243" Star)))]