module Xcommand(
  xcommand,xcommandK,xcommandF,
  xcommands,xcommandsK,xcommandsF) where
import FRequest
import FudgetIO
import NullF(F,K)

xcommandK :: XCommand -> K i o -> K i o
xcommandK = forall i o. XCommand -> K i o -> K i o
forall (f :: * -> * -> *) hi ho.
FudgetIO f =>
XCommand -> f hi ho -> f hi ho
xcommand :: (XCommand -> K i o -> K i o)
xcommandF :: XCommand -> F i o -> F i o
xcommandF = forall i o. XCommand -> F i o -> F i o
forall (f :: * -> * -> *) hi ho.
FudgetIO f =>
XCommand -> f hi ho -> f hi ho
xcommand :: (XCommand -> F i o -> F i o)

xcommandsK :: [XCommand] -> K i o -> K i o
xcommandsK = forall i o. [XCommand] -> K i o -> K i o
forall (f :: * -> * -> *) hi ho.
FudgetIO f =>
[XCommand] -> f hi ho -> f hi ho
xcommands :: ([XCommand] -> K i o -> K i o)
xcommandsF :: [XCommand] -> F i o -> F i o
xcommandsF = forall i o. [XCommand] -> F i o -> F i o
forall (f :: * -> * -> *) hi ho.
FudgetIO f =>
[XCommand] -> f hi ho -> f hi ho
xcommands :: ([XCommand] -> F i o -> F i o)

xcommand :: XCommand -> f hi ho -> f hi ho
xcommand XCommand
xcmd = FRequest -> f hi ho -> f hi ho
forall (f :: * -> * -> *) hi ho.
FudgetIO f =>
FRequest -> f hi ho -> f hi ho
putLow (XCommand -> FRequest
XCmd XCommand
xcmd)
xcommands :: [XCommand] -> f hi ho -> f hi ho
xcommands [XCommand]
xcmds = [FRequest] -> f hi ho -> f hi ho
forall (t :: * -> *) (f :: * -> * -> *) hi ho.
(Foldable t, FudgetIO f) =>
t FRequest -> f hi ho -> f hi ho
putLows ((XCommand -> FRequest) -> [XCommand] -> [FRequest]
forall a b. (a -> b) -> [a] -> [b]
map XCommand -> FRequest
XCmd [XCommand]
xcmds)