Prog "OracleIOExts" ["CEventOracle","Oracle","IOExts","IOExts","IO","Prelude","System","OracleIO","OraclePrelude","OracleSystem"] [] [Func ("OracleIOExts","execCmd") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$##") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","prim_execCmd") []],Var 2,Var 1]])),Func ("OracleIOExts","connectToCommand") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$##") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","prim_connectToCmd") []],Var 2,Var 1]])),Func ("OracleIOExts","readCompleteFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))))) (Rule [2,1] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle",">>=") [Comb FuncCall ("OraclePrelude","readFile") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","readCompleteFile._#lambda2") []],Var 3]]))),Func ("OracleIOExts","readCompleteFile.f.7") 3 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TVar 1) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleIOExts","_case_0") [Var 3,Var 2,Var 1]])),Func ("OracleIOExts","readCompleteFile._#lambda2") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))))) (Rule [2,1] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("OracleIOExts","readCompleteFile.f.7") [Var 2,Comb FuncCall ("OraclePrelude","return") [Var 2,Var 1],Var 3]]))),Func ("OracleIOExts","updateFile") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle",">>=") [Comb FuncCall ("OracleIOExts","readCompleteFile") [Var 3,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","updateFile._#lambda3") [Var 2,Var 3]],Var 4]]))),Func ("OracleIOExts","updateFile._#lambda3") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("OraclePrelude","writeFile") [Var 3,Comb FuncCall ("Oracle","apply") [Var 2,Var 4,Var 1],Var 5]]))),Func ("OracleIOExts","exclusiveIO") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(9,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(10,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(11,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude",":") [Var 9,Comb ConsCall ("Prelude",":") [Var 10,Comb ConsCall ("Prelude",":") [Var 11,Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleSystem","system") [Comb FuncCall ("OraclePrelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'o'),Comb ConsCall ("Prelude",":") [Lit (Charc 'c'),Comb ConsCall ("Prelude",":") [Lit (Charc 'k'),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc 'i'),Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc '-'),Comb ConsCall ("Prelude",":") [Lit (Charc '1'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Var 2,Var 1],Var 4],Comb FuncCall ("Oracle","catchFail") [Comb FuncCall ("Oracle",">>=") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","exclusiveIO._#lambda4") [Var 2]],Var 5],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleSystem","system") [Comb FuncCall ("OraclePrelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'm'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc '-'),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude","[]") []]]]]]],Var 2,Var 6],Var 7],Comb FuncCall ("OraclePrelude","failed") [Var 8],Var 9],Var 10],Var 11]]))),Func ("OracleIOExts","exclusiveIO._#lambda4") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 44) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 44])))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleSystem","system") [Comb FuncCall ("OraclePrelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'm'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc '-'),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude","[]") []]]]]]],Var 2,Var 1],Var 4],Comb FuncCall ("OraclePrelude","return") [Var 3,Var 5],Var 6]]))),Func ("OracleIOExts","setAssoc") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","$##") [Comb FuncCall ("Oracle","$##") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleIOExts","prim_setAssoc") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIOExts","getAssoc") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$##") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","prim_getAssoc") []],Var 2,Var 1]])),Func ("OracleIOExts","readIORef") 2 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIOExts","prim_readIORef") []],Var 2,Var 1]])),Func ("OracleIOExts","writeIORef") 3 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","$#") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleIOExts","prim_writeIORef") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIOExts","_case_0") 3 Private (TVar (-42)) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("CEventOracle","collapse") [Var 1,Var 3]),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleIOExts","readCompleteFile.f.7") [Var 5,Var 3,Var 1]])]])),Func ("OracleIOExts","prim_execCmd") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IOExts","prim_execCmd") [Var 2]]]])),Func ("OracleIOExts","prim_connectToCmd") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IOExts","prim_connectToCmd") [Var 2]]]])),Func ("OracleIOExts","prim_setAssoc") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("IOExts","prim_setAssoc") [Var 3,Var 2]]])),Func ("OracleIOExts","prim_getAssoc") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IOExts","prim_getAssoc") [Var 2]]]])),Func ("OracleIOExts","newIORef") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TVar 0]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IOExts","newIORef") [Var 2]]]])),Func ("OracleIOExts","prim_readIORef") 2 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IOExts","prim_readIORef") [Var 2]]]])),Func ("OracleIOExts","prim_writeIORef") 3 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("IOExts","prim_writeIORef") [Var 3,Var 2]]]))] []