Prog "IOExts" ["IO","Prelude","System"] [Type ("IOExts","IORef") Public [0] []] [Func ("IOExts","execCmd") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_execCmd") [],Var 1])),Func ("IOExts","prim_execCmd") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]])) (External "IOExts.prim_execCmd"),Func ("IOExts","connectToCommand") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_connectToCmd") [],Var 1])),Func ("IOExts","prim_connectToCmd") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])) (External "IOExts.prim_connectToCmd"),Func ("IOExts","readCompleteFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb (FuncPartCall 1) ("IOExts","readCompleteFile._#lambda2") []])),Func ("IOExts","readCompleteFile.f.7") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TVar 1) (TVar 1))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("IOExts","readCompleteFile.f.7") [Var 4,Var 2])])),Func ("IOExts","readCompleteFile._#lambda2") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("IOExts","readCompleteFile.f.7") [Var 1,Comb FuncCall ("Prelude","return") [Var 1]])),Func ("IOExts","updateFile") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readCompleteFile") [Var 2],Comb (FuncPartCall 1) ("IOExts","updateFile._#lambda3") [Var 1,Var 2]])),Func ("IOExts","updateFile._#lambda3") 3 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","writeFile") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("IOExts","exclusiveIO") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [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 1]],Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>=") [Var 2,Comb (FuncPartCall 1) ("IOExts","exclusiveIO._#lambda4") [Var 1]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [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 1]],Comb FuncCall ("Prelude","failed") []]]])),Func ("IOExts","exclusiveIO._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 44) (TCons ("Prelude","IO") [TVar 44]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [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 1]],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("IOExts","setAssoc") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IOExts","prim_setAssoc") [],Var 1],Var 2])),Func ("IOExts","prim_setAssoc") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IOExts.prim_setAssoc"),Func ("IOExts","getAssoc") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_getAssoc") [],Var 1])),Func ("IOExts","prim_getAssoc") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "IOExts.prim_getAssoc"),Func ("IOExts","newIORef") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TVar 0]])) (External "IOExts.newIORef"),Func ("IOExts","readIORef") 1 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IOExts","prim_readIORef") [],Var 1])),Func ("IOExts","prim_readIORef") 1 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (External "IOExts.prim_readIORef"),Func ("IOExts","writeIORef") 2 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IOExts","prim_writeIORef") [],Var 1],Var 2])),Func ("IOExts","prim_writeIORef") 2 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IOExts.prim_writeIORef")] []