PH#      !"SafeIN (_cmdspec :: Lens' CreateProcess CmdSpec  *_ShellCommand :: Traversal' CmdSpec String 5_RawCommand :: Traversal' CmdSpec (FilePath,[String]) ,_cwd :: Lens' CreateProcess (Maybe FilePath) 5_env :: Lens' CreateProcess (Maybe [(String,String)])~An improper lens to get and insert values in an association list. It assumes that there are no duplicate keys in the list.A lens for the (std_in,std_out,std_err) triplet. Bstd_streams :: Lens' CreateProcess (StdStream,StdStream,StdStream)     None #$%&'()*+None  +-35;IN)The type of handlers that write to piped stdin, consume piped stdout and stderrP, and work with the process exit code, eventually returning a value of type r, except when an error e interrups the execution.Example of a complex handler::{: execute (piped (shell "{ cat ; echo eee 1>&2 ; }")) $ ( (\_ _ o e oe ec -> (o,e,oe,ec)) <$> feedBytes (Just "aaa") <*>  feedBytes (Just "bbb") <*>  foldOut intoLazyBytes <*> foldErr intoLazyBytes <*>U foldOutErr (combined (PT.lines PT.utf8x) (PT.lines PT.utf8x) PT.intoLazyText) <*> exitCode :}.("aaabbb","eee\n","aaabbb\neee\n",ExitSuccess)-Execute an external program described by the , record. The U Applicative specifies how to handle the standard streams and the exit code. Since - is an Applicative, a simple invocation of  could be,execute (piped (shell "echo foo")) (pure ())owhich would discard the program's stdout and stderr, and ignore the exit code. To actually get the exit code:+execute (piped (shell "echo foo")) exitCode ExitSuccessTo collect stdout as a lazy - along with the exit code:Pexecute (piped (shell "echo foo")) (liftA2 (,) (foldOut intoLazyBytes) exitCode)("foo\n",ExitSuccess) respects all the fields of the ,k record. If stdout is not piped, but a handler is defined for it, the handler will see an empty stream:Iexecute ((shell "echo foo"){ std_out = Inherit }) (foldOut intoLazyBytes)foo"">No effort is made to catch exceptions thrown during execution:Zexecute (piped (shell "echo foo")) (foldOut (withCont (\_ -> throwIO (userError "oops")))) *** Exception: user error (oops)However, care is taken to automatically terminate the external process if an exception (including asynchronous ones) or other type of error happens. This means we can terminate the external process by killing the thread that is running :JforkIO (execute (piped (shell "sleep infinity")) (pure ())) >>= killThreadLike , but . will be unbuffered if piped. Like !, but allows the handlers in the O Applicative to interrupt the execution of the external process by returning a /N value, in addition to throwing exceptions. This is sometimes more convenient:hexecuteFallibly (piped (shell "sleep infinity")) (foldOut (withFallibleCont (\_ -> pure (Left "oops")))) Left "oops"9executeFallibly (piped (shell "exit 1")) validateExitCodeLeft 1The first type parameter of S is the error type. If it is never used, it remains polymorphic and may unify with 0 (as required by ).Like , but . will be unbuffered if piped. Sets ., 1 and 2 in the , record to 3. &Any unpiped stream will appear to the  handlers as empty.  Feed any 4 container of strict s to stdin.  Feed a lazy  to stdin.  Feed any 4 container of strict s to stdin#, encoding the texts as UTF8.  Feed a lazy  to stdin, encoding it as UTF8. Feed stdin by running a pipes 5,. This allows bracketing functions like 6 inside the handler. Consume standard output. Consume standard error. 9Consume standard output and error together. See also the combine function re-exported from Pipes.Transduce. Simply returns the 7. !Fails with the error code when 7 is not 8.9: writes nothing to stdin , discards the data coming from stdout and stderr, and ignores the exit code.;/ combines handlers by sequencing the writes to stdin#, and making concurrent reads from stdout and stderr.<= is useful to massage errors. >: writes nothing to stdin. ; sequences the writes to stdin.?= is useful to massage errors.)@ABCDEFGH !"IJKL9<M>N?OkPQRSTUVWXYZ[\]^_`abcdefghijk21.lmno,pqr3stuvwxyz{|}~  !"  !"%@ABCDEFGH !"IJKL9<M>N?O      !"#$%&'()*+,-./.0.1.2.3.4.5.6.789:;<89=>?@>AB89C89D89E>FGHIJ>KL>MN>MOP>QR>QST>UVWXYYZ[[\]^_`abcde8fg8fh8fi8fj8fk8fl8fm8fn8fo8fp8fq8fr8fs8ft8fu8fv8fw8fx8fy8fz8f{8f|8f}89~8989898989898989:898989898989proce_Lc8gasq6WGX4qiGAGDxY9lSystem.Process.LensSystem.Process.StreamingSystem.Process.Streaming.TextData ByteString Data.LazyTextsText_cmdspec _ShellCommand _RawCommand_cwd_envenvAt std_streams_std_in_std_out_std_err _close_fds _create_group_delegate_ctlcpipes_CHv8eBSXfB0FhGoPgBYxRuPipes.Transduce.ByteString intoLazyBytesStreamsexecuteexecuteInteractiveexecuteFalliblyexecuteInteractiveFalliblypiped feedBytes feedLazyBytesfeedUtf8 feedLazyUtf8 feedProducer feedProducerMfeedSafeProducerfeedFallibleProducerfeedContfoldOutfoldErr foldOutErrexitCodevalidateExitCode withExitCodePipes.Transduce.Textutf8xutf8lines_lines intoLazyText foldedLineseachLinedecoderxdecoderproce_0hwN3CTKynhHQqQkChnSdHSystem.Process.Internals CreateProcessbytes_6vj5EoliHgNHISHCVCb069Data.ByteString.Lazy.Internalstd_inbase Data.EitherLeft Data.VoidVoidstd_outstd_err CreatePipe Data.FoldableFoldablepipes_Lax7q64dErDBrfoY74E6sY Pipes.CoreConsumer System.IOwithFileGHC.IO.ExceptionExitCode ExitSuccess$fApplicativeStreamsGHC.Basepure<*>$fBifunctorStreamsData.Bifunctorfirst$fApplicativeFeed1_$fBifunctorFeed1Feed1_ runFeed1_Feed1executeFalliblyInternalterminateCarefully feed1Fallibly liftFeed1 liftFold2liftExitCodeValidation$fMonoidStreams $fMonoidFeed1$fApplicativeFeed1$fBifunctorFeed1_System.Process createPipe rawSystemsystemrunInteractiveProcessrunInteractiveCommand runProcess runCommandinterruptProcessGroupOfterminateProcessgetProcessExitCodewaitForProcessshowCommandForUserreadCreateProcessWithExitCodereadProcessWithExitCodereadCreateProcess readProcess callCommand callProcess spawnCommand spawnProcess createProcessshellproccreateProcess_ ProcessHandle delegate_ctlc create_group close_fdsenvcwdcmdspec RawCommand ShellCommandCmdSpec UseHandleInherit StdStreamPipes.Transducedelimitgroups Delimited transduce1Fold1 Continuous TransducerFold2withSafeConsumer withParserM withParser withFoldIOwithFoldwithFallibleFoldwithFallibleCont'withFallibleContwithFallibleConsumer withCont'withContwithConsumerM' withConsumerM withConsumer' withConsumertripxtrip transducer separatedmapperFoldablemapperEnumerablemapper liftSecond liftFirst intercalatesfolds fold2Falliblyfold2 fold1Falliblyfold1fallibleTransducerfallibleMapperconcatscombined