CurryProg "Socket" ["Prelude","System","IO"] [CType ("Socket","Socket") Public [] []] [CFunc ("Socket","connectToSocket") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CRules CFlex [CRule [CPVar (0,"host"),CPVar (1,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_connectToSocket"))) (CVar (0,"host")))) (CVar (1,"port")))] []]), CFunc ("Socket","listenOn") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Socket","prim_listenOn"))) (CVar (0,"port")))] []]), CFunc ("Socket","listenOnFresh") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Socket","Socket") []]]) (CExternal "listenOnFresh"), CFunc ("Socket","prim_connectToSocket") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CExternal "prim_connectToSocket"), CFunc ("Socket","prim_listenOn") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CExternal "prim_listenOn"), CFunc ("Socket","prim_socketAccept") 1 Private (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]])) (CExternal "prim_socketAccept"), CFunc ("Socket","prim_socketListen") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_socketListen"), CFunc ("Socket","prim_waitForSocketAccept") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]]]))) (CExternal "prim_waitForSocketAccept"), CFunc ("Socket","socketAccept") 1 Public (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketAccept"))) (CVar (0,"s")))] []]), CFunc ("Socket","socketListen") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"length")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketListen"))) (CVar (0,"s")))) (CVar (1,"length")))] []]), CFunc ("Socket","waitForSocketAccept") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]]]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"timeout")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_waitForSocketAccept"))) (CVar (0,"s")))) (CVar (1,"timeout")))] []])] []