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