CurryProg "IOExts" ["Prelude","System","IO"] [CType ("IOExts","IORef") Public [(0,"_")] []] [CFunc ("IOExts","connectToCommand") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_connectToCmd"))) (CVar (0,"cmd")))] []]), CFunc ("IOExts","exclusiveIO") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"lockfile"),CPVar (1,"action")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '1'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CApply (CSymbol ("Prelude","catchFail")) (CDoExpr [CSPat (CPVar (2,"actionResult")) (CVar (1,"action")),CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"actionResult")))])) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile"))))) (CSymbol ("Prelude","failed"))))])] []]), CFunc ("IOExts","execCmd") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_execCmd"))) (CVar (0,"cmd")))] []]), CFunc ("IOExts","getAssoc") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_getAssoc"))) (CVar (0,"key")))] []]), CFunc ("IOExts","newIORef") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("IOExts","IORef") [CTVar (0,"a")]])) (CExternal "newIORef"), CFunc ("IOExts","prim_connectToCmd") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CExternal "prim_connectToCmd"), CFunc ("IOExts","prim_execCmd") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CExternal "prim_execCmd"), CFunc ("IOExts","prim_getAssoc") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])) (CExternal "prim_getAssoc"), CFunc ("IOExts","prim_readIORef") 1 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_readIORef"), CFunc ("IOExts","prim_setAssoc") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_setAssoc"), CFunc ("IOExts","prim_writeIORef") 2 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeIORef"), CFunc ("IOExts","readCompleteFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"s")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CSymbol ("IOExts","f")) (CVar (1,"s"))) (CApply (CSymbol ("Prelude","return")) (CVar (1,"s"))))])] [CLocalFunc (CFunc ("IOExts","f") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"r")] [(CSymbol ("Prelude","success"),CVar (1,"r"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"cs")],CPVar (4,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IOExts","f")) (CVar (3,"cs"))) (CVar (4,"r")))] []]))]]), CFunc ("IOExts","readIORef") 1 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_readIORef"))) (CVar (0,"ref")))] []]), CFunc ("IOExts","setAssoc") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_setAssoc"))) (CVar (0,"key")))) (CVar (1,"val")))] []]), CFunc ("IOExts","updateFile") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"s")) (CApply (CSymbol ("IOExts","readCompleteFile")) (CVar (1,"file"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (1,"file"))) (CApply (CVar (0,"f")) (CVar (2,"s"))))])] []]), CFunc ("IOExts","writeIORef") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_writeIORef"))) (CVar (0,"ref"))) (CVar (1,"val")))] []])] []