module HaskellIO{-(hIOSucc, hIOSuccK, hIOSuccF, hIO, hIOK, hIOF, hIOerr, hIOerrK, hIOerrF, haskellIO, haskellIOK, haskellIOF)-} where import Prelude hiding (IOError) --import Command --import Cont(cmdContF) import FudgetIO import NullF(F) import FRequest --import Event --import Fudget --import Message(Message(..)) import ShowFailure --import Sockets --import Xtypes import DialogueIO hIOSucc req = hIO req . const hIOerr req fcont scont = haskellIO req $ \ resp -> case resp of Failure f -> fcont f _ -> scont resp haskellIO request = cmdContLow (DReq request) expected where expected (DResp response) = Just response -- expected (SResp sresp) = Just (SocketResponse sresp) -- for backward compat expected _ = Nothing hIO req = hIOerr req (\e -> error ("IOError: " ++ showFailure e)) ------ haskellIOF :: Request -> (Response -> F a b) -> F a b haskellIOF = haskellIO hIOerrF :: Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b hIOerrF = hIOerr hIOF :: Request -> (Response -> F a b) -> F a b hIOF = hIO hIOSuccF :: Request -> (F a b) -> F a b hIOSuccF = hIOSucc {--- haskellIOK :: Request -> (Response -> K a b) -> K a b haskellIOK = haskellIO hIOerrK :: Request -> (IOError -> K a b) -> (Response -> K a b) -> K a b hIOerrK = hIOerr hIOK :: Request -> (Response -> K a b) -> K a b hIOK = hIO hIOSuccK :: Request -> (K a b) -> K a b hIOSuccK = hIOSucc ---}