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 {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 {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 {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 {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 = 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 = forall {t :: * -> *} {f :: * -> * -> *} {hi} {ho}.
(Foldable t, FudgetIO f) =>
t FRequest -> f hi ho -> f hi ho
putLows (forall a b. (a -> b) -> [a] -> [b]
map XCommand -> FRequest
XCmd [XCommand]
xcmds)