module Xrequest(xrequest,xrequestF, xrequestK,Cont(..)) where
import FRequest
import FudgetIO
import EitherUtils(Cont(..))
import NullF(F,K)
xrequestK :: XRequest -> (XResponse -> Maybe a) -> Cont (K b c) a
xrequestK = forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest :: (XRequest -> (XResponse -> Maybe a) -> Cont (K b c) a)
xrequestF :: XRequest -> (XResponse -> Maybe a) -> Cont (F b c) a
xrequestF = forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest :: (XRequest -> (XResponse -> Maybe a) -> Cont (F b c) a)
xrequest :: XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest XRequest
xreq XResponse -> Maybe ans
expected = forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
FRequest -> (FResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
cmdContLow (XRequest -> FRequest
XReq XRequest
xreq) FResponse -> Maybe ans
expectXResp
where expectXResp :: FResponse -> Maybe ans
expectXResp FResponse
msg =
case FResponse
msg of
XResp XResponse
xr -> XResponse -> Maybe ans
expected XResponse
xr
FResponse
_ -> forall a. Maybe a
Nothing