CurryProg "Integer" ["Prelude"] [] [CFunc ("Integer","abs") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CApply (CSymbol ("Prelude","negate")) (CVar (0,"n")))) (CVar (0,"n")))] []]), CFunc ("Integer","binomial") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CVar (1,"m"))),CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"m"))) (CVar (0,"n")))) (CApply (CSymbol ("Integer","factorial")) (CVar (1,"m"))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (2,"x"),CPVar (3,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"x"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"y"))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"x"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"y"))) (CLit (CIntc 1))))))] []]))]]), CFunc ("Integer","bitAnd") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]), CFunc ("Integer","bitNot") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 32))) (CVar (0,"n")))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (1,"c"),CPVar (2,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (3,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"c"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (2,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (4,"q")) (CApply (CApply (CSymbol ("Prelude","-")) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (2,"m"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (4,"q")))))] []]))]]), CFunc ("Integer","bitOr") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitOr")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]), CFunc ("Integer","bitTrunc") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Integer","pow")) (CLit (CIntc 2))) (CVar (0,"n")))) (CLit (CIntc 1)))) (CVar (1,"m")))] []]), CFunc ("Integer","bitXor") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitXor")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2))))) (CLit (CIntc 0))) (CLit (CIntc 1))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]), CFunc ("Integer","even") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]), CFunc ("Integer","factorial") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CApply (CSymbol ("Integer","factorial")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"n"))) (CLit (CIntc 1))))))] []]), CFunc ("Integer","ilog") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 10)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CApply (CSymbol ("Integer","ilog")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 10))))))] []]), CFunc ("Integer","isqrt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 4)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 2))) (CVar (0,"n")))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (1,"low"),CPVar (2,"past")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"past"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"low"))) (CLit (CIntc 1))))) (CVar (1,"low"))) (CLetDecl [CLocalPat (CPVar (3,"cand")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"past"))) (CVar (1,"low")))) (CLit (CIntc 2))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"cand"))) (CVar (3,"cand")))) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"low"))) (CVar (3,"cand")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (3,"cand"))) (CVar (2,"past"))))))] []]))]]), CFunc ("Integer","max") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (1,"m"))) (CVar (0,"n")))] []]), CFunc ("Integer","max3") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","max")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Integer","max")) (CVar (1,"m"))) (CVar (2,"p"))))] []]), CFunc ("Integer","maxlist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","max")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","maxlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]), CFunc ("Integer","min") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (0,"n"))) (CVar (1,"m")))] []]), CFunc ("Integer","min3") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","min")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Integer","min")) (CVar (1,"m"))) (CVar (2,"p"))))] []]), CFunc ("Integer","minlist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","min")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","minlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]), CFunc ("Integer","odd") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]), CFunc ("Integer","pow") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"a"),CPVar (1,"b")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"b"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CLit (CIntc 1))) (CVar (0,"a"))) (CVar (1,"b")))] [CLocalFunc (CFunc ("Integer","powaux") 3 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (2,"n"),CPVar (3,"x"),CPVar (4,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"y"))) (CLit (CIntc 0)))) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (4,"y"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (3,"x"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"x"))) (CVar (3,"x")))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"y"))) (CLit (CIntc 2)))))] []]))]])] []