module HaskellIO where
import Prelude hiding (IOError)
import FudgetIO
import NullF(F)
import FRequest
import ShowFailure
import DialogueIO
hIOSucc :: Request -> f b ho -> f b ho
hIOSucc Request
req = Request -> (Response -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (Response -> f b ho) -> f b ho
hIO Request
req ((Response -> f b ho) -> f b ho)
-> (f b ho -> Response -> f b ho) -> f b ho -> f b ho
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f b ho -> Response -> f b ho
forall a b. a -> b -> a
const
hIOerr :: Request -> (IOError -> f b ho) -> (Response -> f b ho) -> f b ho
hIOerr Request
req IOError -> f b ho
fcont Response -> f b ho
scont =
Request -> (Response -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (Response -> f b ho) -> f b ho
haskellIO Request
req ((Response -> f b ho) -> f b ho) -> (Response -> f b ho) -> f b ho
forall a b. (a -> b) -> a -> b
$ \ Response
resp ->
case Response
resp of
Failure IOError
f -> IOError -> f b ho
fcont IOError
f
Response
_ -> Response -> f b ho
scont Response
resp
haskellIO :: Request -> (Response -> f b ho) -> f b ho
haskellIO Request
request = FRequest
-> (FResponse -> Maybe Response) -> (Response -> f b ho) -> f b ho
forall (f :: * -> * -> *) ans b ho.
FudgetIO f =>
FRequest -> (FResponse -> Maybe ans) -> (ans -> f b ho) -> f b ho
cmdContLow (Request -> FRequest
DReq Request
request) FResponse -> Maybe Response
expected
where
expected :: FResponse -> Maybe Response
expected (DResp Response
response) = Response -> Maybe Response
forall a. a -> Maybe a
Just Response
response
expected FResponse
_ = Maybe Response
forall a. Maybe a
Nothing
hIO :: Request -> (Response -> f b ho) -> f b ho
hIO Request
req = Request -> (IOError -> f b ho) -> (Response -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (IOError -> f b ho) -> (Response -> f b ho) -> f b ho
hIOerr Request
req (\IOError
e -> [Char] -> f b ho
forall a. HasCallStack => [Char] -> a
error ([Char]
"IOError: " [Char] -> [Char] -> [Char]
forall a. [a] -> [a] -> [a]
++ IOError -> [Char]
showFailure IOError
e))
haskellIOF :: Request -> (Response -> F a b) -> F a b
haskellIOF :: Request -> (Response -> F a b) -> F a b
haskellIOF = Request -> (Response -> F a b) -> F a b
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (Response -> f b ho) -> f b ho
haskellIO
hIOerrF :: Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b
hIOerrF :: Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b
hIOerrF = Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (IOError -> f b ho) -> (Response -> f b ho) -> f b ho
hIOerr
hIOF :: Request -> (Response -> F a b) -> F a b
hIOF :: Request -> (Response -> F a b) -> F a b
hIOF = Request -> (Response -> F a b) -> F a b
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> (Response -> f b ho) -> f b ho
hIO
hIOSuccF :: Request -> (F a b) -> F a b
hIOSuccF :: Request -> F a b -> F a b
hIOSuccF = Request -> F a b -> F a b
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
Request -> f b ho -> f b ho
hIOSucc