CurryProg "EventOracle" ["Prelude","IOExts","Unsafe","System"] [CTypeSyn ("EventOracle","Ref") Public [] (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]), CType ("EventOracle","Node") Public [] [CCons ("EventOracle","Node") 3 Public [CTCons ("EventOracle","Ref") [],CTCons ("EventOracle","Cost") [],CTCons ("EventOracle","Ref") []],CCons ("EventOracle","Marker") 0 Public [],CCons ("EventOracle","Collapsed") 0 Public []], CTypeSyn ("EventOracle","Cost") Public [] (CTCons ("Prelude","Int") [])] [CFunc ("EventOracle","closeRef") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]), CFunc ("EventOracle","collapse") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]), CFunc ("EventOracle","expand") 3 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EventOracle","Ref") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"refs"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (3,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (3,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (4,"p"),CPVar (5,"c"),CPVar (6,"s")]) (CDoExpr [CSPat (CPVar (7,"last")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("EventOracle","toAssocList"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (5,"c"))) (CLit (CIntc 1)))) (CVar (4,"p"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"ref"))) (CVar (1,"refs")))) (CVar (6,"s"))),CSPat (CPVar (8,"suc")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (6,"s"))),CSExpr (CCase (CVar (8,"suc")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (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 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"s"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (7,"last"))) (CVar (10,"sc"))) (CVar (11,"ss")))),CBranch (CPComb ("EventOracle","Marker") []) (CSymbol ("Prelude","done"))])])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))]))] []]), CFunc ("EventOracle","finalize") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"mod"),CPVar (1,"fmR"),CPVar (2,"endR")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"l")]) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (1,"fmR"))) (CVar (2,"endR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"mod"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))])] []]), CFunc ("EventOracle","fresh") 1 Public (CFuncType (CTCons ("Prelude","()") []) (CTCons ("EventOracle","Ref") [])) (CRules CFlex [CRule [CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]"))))))))))] []]), CFunc ("EventOracle","initialize") 1 Public (CFuncType (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"mod")) (CSymbol ("System","getProgName")),CSLet [CLocalPat (CPVar (2,"extFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]"))))))) []],CSExpr (CApply (CApply (CSymbol ("IOExts","setAssoc")) (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","[]")))))))) (CVar (2,"extFile"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (2,"extFile"))) (CSymbol ("Prelude","[]"))),CSPat (CPVar (3,"startMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))))),CSPat (CPVar (4,"endMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))),CSPat (CPVar (5,"mainR")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"startMarker"))) (CLit (CIntc 0))) (CVar (4,"endMarker")))),CSPat (CPVar (6,"marker")) (CApply (CSymbol ("IOExts","newIORef")) (CSymbol ("EventOracle","Marker"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"startMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"marker"))) (CLit (CIntc 0))) (CVar (5,"mainR")))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (4,"endMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"mainR"))) (CLit (CIntc 0))) (CVar (6,"marker")))),CSPat (CPVar (7,"x")) (CApply (CVar (0,"app")) (CVar (5,"mainR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Prelude","return"))) (CVar (7,"x"))),CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'z'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]"))))))))))))),CSExpr (CApply (CApply (CApply (CSymbol ("EventOracle","finalize")) (CVar (1,"mod"))) (CVar (3,"startMarker"))) (CVar (4,"endMarker"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()")))])] []]), CFunc ("EventOracle","pointerToList") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("EventOracle","Cost") []]]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"end")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"_"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPVar (6,"cs")) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (5,"s"))) (CVar (1,"end"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"c"))) (CVar (6,"cs"))))]),CBranch (CPComb ("EventOracle","Marker") []) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))])])] []]), CFunc ("EventOracle","replace") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (5,"s"))))]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]), CFunc ("EventOracle","toAssocList") 4 Public (CFuncType (CTCons ("EventOracle","Cost") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EventOracle","Ref") []]) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("EventOracle","Ref") []]))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"r"),CPComb ("Prelude","[]") []],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (2,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (1,"p"))) (CVar (0,"c"))) (CVar (3,"s"))))) (CApply (CSymbol ("Prelude","return")) (CVar (2,"r"))))] [],CRule [CPVar (4,"c"),CPVar (5,"p"),CPComb ("Prelude",":") [CPVar (6,"r"),CPAs (9,"rs") (CPComb ("Prelude",":") [CPVar (7,"r'"),CPVar (8,"_")])],CPVar (10,"s")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"p"))) (CVar (4,"c"))) (CVar (7,"r'")))),CSExpr (CApply (CApply (CApply (CApply (CSymbol ("EventOracle","toAssocList")) (CLit (CIntc 0))) (CVar (6,"r"))) (CVar (9,"rs"))) (CVar (10,"s")))])] []]), CFunc ("EventOracle","warning") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"msg")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStrLn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'W'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'G'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))) (CVar (0,"msg"))))] []])] []