Prog "OracleIO" ["CEventOracle","Oracle","IOExts","IO","Prelude","OraclePrelude"] [] [Func ("OracleIO","openFile") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])))))) (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) ("OracleIO","prim_openFile") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIO","hClose") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hClose") []],Var 2,Var 1]])),Func ("OracleIO","hFlush") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hFlush") []],Var 2,Var 1]])),Func ("OracleIO","hIsEOF") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hIsEOF") []],Var 2,Var 1]])),Func ("OracleIO","isEOF") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])))) (Rule [1] (Let [(2,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("OracleIO","hIsEOF") [Comb FuncCall ("OracleIO","stdin") [Var 1],Var 2]]))),Func ("OracleIO","hSeek") 4 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (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","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Oracle","$##") [Comb FuncCall ("Oracle","$#") [Comb FuncCall ("Oracle","$#") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 1) ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") []],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []]]],Comb (FuncPartCall 4) ("OracleIO","prim_hSeek") []],Var 2,Var 1],Var 3,Var 5],Var 4,Var 6]]))),Func ("OracleIO","hWaitForInput") 3 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])))))) (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) ("OracleIO","prim_hWaitForInput") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIO","hWaitForInputs") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])))))) (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) ("OracleIO","prim_hWaitForInputs") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIO","hReady") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleIO","hWaitForInput") [Var 2,Lit (Intc 0),Var 1]])),Func ("OracleIO","hGetChar") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hGetChar") []],Var 2,Var 1]])),Func ("OracleIO","hGetLine") 2 Public (FuncType (TCons ("IO","Handle") []) (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 ("OracleIO","hGetChar") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hGetLine._#lambda2") [Var 2]],Var 3]]))),Func ("OracleIO","hGetLine._#lambda2") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))))) (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 ("OracleIO","_case_2") [Var 2,Var 3,Comb FuncCall ("OraclePrelude","==") [Var 3,Lit (Charc '\n'),Var 1],Var 4]]))),Func ("OracleIO","hGetLine._#lambda2._#lambda3") 3 Private (FuncType (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","[]") [TCons ("Prelude","Char") []]])))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude","return") [Comb ConsCall ("Prelude",":") [Var 2,Var 3],Var 1]])),Func ("OracleIO","hGetContents") 2 Public (FuncType (TCons ("IO","Handle") []) (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 ("OracleIO","hIsEOF") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hGetContents._#lambda4") [Var 2]],Var 3]]))),Func ("OracleIO","hGetContents._#lambda4") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleIO","_case_1") [Var 2,Var 3,Var 1]])),Func ("OracleIO","hGetContents._#lambda4._#lambda5") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))))) (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 ("OracleIO","hGetContents") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hGetContents._#lambda4._#lambda5._#lambda6") [Var 3]],Var 4]]))),Func ("OracleIO","hGetContents._#lambda4._#lambda5._#lambda6") 3 Private (FuncType (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","[]") [TCons ("Prelude","Char") []]])))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude","return") [Comb ConsCall ("Prelude",":") [Var 2,Var 3],Var 1]])),Func ("OracleIO","getContents") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1] (Let [(2,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("OracleIO","hGetContents") [Comb FuncCall ("OracleIO","stdin") [Var 1],Var 2]]))),Func ("OracleIO","hPutChar") 3 Public (FuncType (TCons ("IO","Handle") []) (FuncType (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) ("OracleIO","prim_hPutChar") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleIO","hPutStr") 3 Public (FuncType (TCons ("IO","Handle") []) (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] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleIO","_case_0") [Var 2,Var 3,Var 1]])),Func ("OracleIO","hPutStrLn") 3 Public (FuncType (TCons ("IO","Handle") []) (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","()") []]),(5,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","[]") []]],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleIO","hPutStr") [Var 2,Var 3,Var 1],Comb FuncCall ("OracleIO","hPutChar") [Var 2,Lit (Charc '\n'),Var 4],Var 5]]))),Func ("OracleIO","hPrint") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hPutStrLn") [Var 2]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","show") []],Var 1]])),Func ("OracleIO","hIsReadable") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hIsReadable") []],Var 2,Var 1]])),Func ("OracleIO","hIsWritable") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$#") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","prim_hIsWritable") []],Var 2,Var 1]])),Func ("OracleIO","_case_0") 3 Private (TVar (-42)) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude","done") [Var 1]]),Branch (Pattern ("Prelude",":") [4,5]) (Let [(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleIO","hPutChar") [Var 2,Var 4,Var 1],Comb FuncCall ("OracleIO","hPutStr") [Var 2,Var 5,Var 6],Var 7]]))]])),Func ("OracleIO","_case_1") 3 Private (TVar (-42)) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Rigid (Var 3) [Branch (Pattern ("Prelude","True") []) (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(5,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","[]") []]],Comb FuncCall ("OraclePrelude",">>") [Comb FuncCall ("OracleIO","hClose") [Var 2,Var 1],Comb FuncCall ("OraclePrelude","return") [Comb ConsCall ("Prelude","[]") [],Var 4],Var 5]])),Branch (Pattern ("Prelude","False") []) (Let [(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle",">>=") [Comb FuncCall ("OracleIO","hGetChar") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hGetContents._#lambda4._#lambda5") [Var 2]],Var 6]]))]])),Func ("OracleIO","_case_2") 4 Private (TVar (-42)) (Rule [2,3,4,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Rigid (Var 4) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude","return") [Comb ConsCall ("Prelude","[]") [],Var 1]]),Branch (Pattern ("Prelude","False") []) (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 ("Oracle",">>=") [Comb FuncCall ("OracleIO","hGetLine") [Var 2,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleIO","hGetLine._#lambda2._#lambda3") [Var 3]],Var 5]]))]])),Func ("OracleIO","stdin") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("IO","Handle") [])) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("IO","stdin") []])),Func ("OracleIO","stdout") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("IO","Handle") [])) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("IO","stdout") []])),Func ("OracleIO","stderr") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("IO","Handle") [])) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("IO","stderr") []])),Func ("OracleIO","prim_openFile") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])))))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_openFile") [Var 3,Var 2]]]])),Func ("OracleIO","prim_hClose") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("IO","prim_hClose") [Var 2]]])),Func ("OracleIO","prim_hFlush") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("IO","prim_hFlush") [Var 2]]])),Func ("OracleIO","prim_hIsEOF") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hIsEOF") [Var 2]]]])),Func ("OracleIO","prim_hSeek") 4 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))))) (Rule [4,3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("IO","prim_hSeek") [Var 4,Var 3,Var 2]]])),Func ("OracleIO","prim_hWaitForInput") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])))))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hWaitForInput") [Var 3,Var 2]]]])),Func ("OracleIO","prim_hWaitForInputs") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])))))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hWaitForInputs") [Var 3,Var 2]]]])),Func ("OracleIO","prim_hGetChar") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hGetChar") [Var 2]]]])),Func ("OracleIO","prim_hPutChar") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (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 ("IO","prim_hPutChar") [Var 3,Var 2]]])),Func ("OracleIO","prim_hIsReadable") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hIsReadable") [Var 2]]]])),Func ("OracleIO","prim_hIsWritable") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("IO","prim_hIsWritable") [Var 2]]]]))] []