module Process where
import Srequest
import NullF()
import Sockets
import Transceivers
import CompOps
subProcessF :: String -> F String (Either String String)
subProcessF String
cmd =
forall {f :: * -> * -> *} {hi} {ho}.
FudgetIO f =>
SocketRequest -> (SocketResponse -> f hi ho) -> f hi ho
sIO (String -> Bool -> Bool -> Bool -> SocketRequest
StartProcess String
cmd Bool
True Bool
True Bool
True) forall a b. (a -> b) -> a -> b
$
\ (ProcessSockets (Just Socket
sin) (Just Socket
sout) (Just Socket
serr)) ->
(forall {e}. Socket -> F e String
receiverF Socket
soutforall {a} {b} {c} {d}.
F a b -> F c d -> F (Either a c) (Either b d)
>+<forall {e}. Socket -> F e String
receiverF Socket
serr)forall {a1} {b} {a2}. F a1 b -> F a2 a1 -> F a2 b
>==<forall {b}. Socket -> F String b
transmitterF Socket
sin