CurryProg "Oracle" ["Prelude","IOExts","CEventOracle","Meta","Unsafe"] [] [CFunc ("Oracle","$!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]), CFunc ("Oracle","$!!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]), CFunc ("Oracle","$#") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$#")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]), CFunc ("Oracle","$##") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$##")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]), CFunc ("Oracle",">>=") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","bind")) (CVar (0,"act"))) (CVar (1,"cont")))))] []]), CFunc ("Oracle","apply") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","apply")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]), CFunc ("Oracle","bind") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref2")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref2"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CApply (CSymbol ("Oracle","bind2")) (CVar (1,"cont"))) (CVar (2,"world"))) (CVar (4,"ref2"))))))] []]), CFunc ("Oracle","bind2") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"cont"),CPVar (1,"world"),CPVar (2,"ref2"),CPVar (3,"x")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref3")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (2,"ref2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref3"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"cont"))) (CVar (3,"x"))) (CVar (2,"ref2")))) (CVar (1,"world"))) (CVar (4,"ref3")))))] []]), CFunc ("Oracle","catch") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref'")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref'"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act1"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","True")))))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (1,"act2"))) (CVar (2,"world"))) (CVar (4,"ref'")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","False"))))))) (CLambda [CPComb ("Prelude","(,)") [CPVar (5,"b"),CPVar (6,"res")]] (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Oracle","safeIOResult")) (CApply (CSymbol ("Prelude","return")) (CVar (5,"b"))))) (CApply (CSymbol ("Prelude","return")) (CVar (6,"res"))))))))] []]), CFunc ("Oracle","catchFail") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","catch")) (CVar (0,"act1"))) (CVar (1,"act2")))))] []]), CFunc ("Oracle","compose") 3 Public (CFuncType (CFuncType (CTVar (0,"b")) (CTVar (1,"c"))) (CFuncType (CFuncType (CTVar (2,"a")) (CTVar (0,"b"))) (CFuncType (CTVar (2,"a")) (CTVar (1,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"g"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CApply (CVar (1,"g")) (CVar (2,"x"))))] []]), CFunc ("Oracle","headNormalFormIO") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CSymbol ("Prelude","[]")))))))))))))))))))] []]), CFunc ("Oracle","lambda_world") 3 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (1,"ref"))) (CVar (0,"act")))] []]), CFunc ("Oracle","oracle") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"expr")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CVar (0,"expr"))))] []]), CFunc ("Oracle","oracleIO") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CLambda [CPVar (1,"mainR")] (CLetDecl [CLocalPat (CPVar (2,"appRef")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (1,"mainR"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"appRef"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CVar (0,"app")) (CVar (1,"mainR"))) (CVar (2,"appRef"))) (CSymbol ("Prelude","()")))))))] []]), CFunc ("Oracle","partCall") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CVar (0,"x")))] []]), CFunc ("Oracle","partCons") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CApply (CVar (0,"c")) (CVar (2,"x"))))] []]), CFunc ("Oracle","partFunc") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b")))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (2,"x"))) (CVar (1,"r")))] []]), CFunc ("Oracle","prim_unsafePerformIO") 2 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","replace")) (CVar (1,"ref"))) (CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CVar (0,"act")) (CVar (1,"ref"))) (CSymbol ("Prelude","()")))))] []]), CFunc ("Oracle","safeIOResult") 1 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude","Just") [CPVar (1,"fn")]) (CApply (CSymbol ("IOExts","getAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))),CSPat (CPVar (2,"x")) (CVar (0,"act")),CSLet [CLocalPat (CPVar (3,"sx")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"x"))) []],CSExpr (CApply (CApply (CSymbol ("Prelude","appendFile")) (CVar (1,"fn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CApply (CSymbol ("Prelude","length")) (CVar (3,"sx"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CVar (3,"sx"))))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))])] []]), CFunc ("Oracle","unknown") 1 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","unknown")) (CVar (0,"r")))] []])] [COp ("Oracle","$##") CInfixrOp 0,COp ("Oracle","$#") CInfixrOp 0,COp ("Oracle","$!!") CInfixrOp 0,COp ("Oracle","$!") CInfixrOp 0]