Prog "IO" ["Prelude"] [Type ("IO","Handle") Public [] [],Type ("IO","IOMode") Public [] [Cons ("IO","ReadMode") 0 Public [],Cons ("IO","WriteMode") 0 Public [],Cons ("IO","AppendMode") 0 Public []],Type ("IO","SeekMode") Public [] [Cons ("IO","AbsoluteSeek") 0 Public [],Cons ("IO","RelativeSeek") 0 Public [],Cons ("IO","SeekFromEnd") 0 Public []]] [Func ("IO","stdin") 0 Public (TCons ("IO","Handle") []) (External "IO.stdin"),Func ("IO","stdout") 0 Public (TCons ("IO","Handle") []) (External "IO.stdout"),Func ("IO","stderr") 0 Public (TCons ("IO","Handle") []) (External "IO.stderr"),Func ("IO","openFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IO","prim_openFile") [],Var 1],Var 2])),Func ("IO","prim_openFile") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (External "IO.prim_openFile"),Func ("IO","hClose") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hClose") [],Var 1])),Func ("IO","prim_hClose") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "IO.prim_hClose"),Func ("IO","hFlush") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hFlush") [],Var 1])),Func ("IO","prim_hFlush") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "IO.prim_hFlush"),Func ("IO","hIsEOF") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsEOF") [],Var 1])),Func ("IO","prim_hIsEOF") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsEOF"),Func ("IO","isEOF") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]) (Rule [] (Comb FuncCall ("IO","hIsEOF") [Comb FuncCall ("IO","stdin") []])),Func ("IO","hSeek") 3 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 3) ("IO","prim_hSeek") [],Var 1],Var 2],Var 3])),Func ("IO","prim_hSeek") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (External "IO.prim_hSeek"),Func ("IO","hWaitForInput") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IO","prim_hWaitForInput") [],Var 1],Var 2])),Func ("IO","prim_hWaitForInput") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (External "IO.prim_hWaitForInput"),Func ("IO","hWaitForInputs") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IO","prim_hWaitForInputs") [],Var 1],Var 2])),Func ("IO","prim_hWaitForInputs") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (External "IO.prim_hWaitForInputs"),Func ("IO","hReady") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("IO","hWaitForInput") [Var 1,Lit (Intc 0)])),Func ("IO","hGetChar") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hGetChar") [],Var 1])),Func ("IO","prim_hGetChar") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []])) (External "IO.prim_hGetChar"),Func ("IO","hGetLine") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetChar") [Var 1],Comb (FuncPartCall 1) ("IO","hGetLine._#lambda2") [Var 1]])),Func ("IO","hGetLine._#lambda2") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Case Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc '\n')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetLine") [Var 1],Comb (FuncPartCall 1) ("IO","hGetLine._#lambda2._#lambda3") [Var 2]])])),Func ("IO","hGetLine._#lambda2._#lambda3") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("IO","hGetContents") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hIsEOF") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4") [Var 1]])),Func ("IO","hGetContents._#lambda4") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Case Rigid (Var 2) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hClose") [Var 1],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetChar") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4._#lambda5") [Var 1]])])),Func ("IO","hGetContents._#lambda4._#lambda5") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetContents") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4._#lambda5._#lambda6") [Var 2]])),Func ("IO","hGetContents._#lambda4._#lambda5._#lambda6") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("IO","getContents") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (Rule [] (Comb FuncCall ("IO","hGetContents") [Comb FuncCall ("IO","stdin") []])),Func ("IO","hPutChar") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IO","prim_hPutChar") [],Var 1],Var 2])),Func ("IO","prim_hPutChar") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IO.prim_hPutChar"),Func ("IO","hPutStr") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","done") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hPutChar") [Var 1,Var 3],Comb FuncCall ("IO","hPutStr") [Var 1,Var 4]])])),Func ("IO","hPutStrLn") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hPutStr") [Var 1,Var 2],Comb FuncCall ("IO","hPutChar") [Var 1,Lit (Charc '\n')]])),Func ("IO","hPrint") 1 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("IO","hPutStrLn") [Var 1],Comb (FuncPartCall 1) ("Prelude","show") []])),Func ("IO","hIsReadable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsReadable") [],Var 1])),Func ("IO","prim_hIsReadable") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsReadable"),Func ("IO","hIsWritable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsWritable") [],Var 1])),Func ("IO","prim_hIsWritable") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsWritable")] []