úÎF,Bä2      !"#$%&'()*+,-./01Safe+The result of running a process(Construct a process result. A value of 0% denotes success, otherwise, failure.*Construct a process result with the value 0.HReturns true if the given process result was constructed with the value 0, otherwise false. IReturns false if the given process result was constructed with the value 0, otherwise true.!EReturns the value that the given process result was constructed with." Computation " code throws  code3. Normally this terminates the program, returning codem to the program's caller. Before the program terminates, any open or semi-closed handles are first closed.FA program that fails in any other way is treated as if it had called #:. A program that terminates successfully without calling ", explicitly is treated as it it had called "  ExitSuccess.As an  is not an 2, "% bypasses the error handling in the 3% monad and cannot be intercepted by 4 from the Prelude. However it is a 5,, and can be caught using the functions of Control.Exception4. This means that cleanup computations added with 6 (from Control.Exception ) are also executed properly on ".Note: in GHC, "q should be called from the main program thread in order to exit the process. When called from another thread, " will throw an  ExitExceptionI as normal, but the exception will not cause the process itself to exit.#The computation # is equivalent to " ('exitCode exitfail') , where exitfail is implementation-dependent.$The computation $ is equivalent to " ), It terminates the program sucessfully.%Runs the first action.MOnly if the result is successful, run the second action returning its result.&Runs the first action.LOnly if the result is successful, run the second action returning no result.'Runs the first action.\Only if the result is successful, run the second action returning the first action's result.(Runs the second action.LOnly if the result is successful, run the first action returning its result.)Runs the second action.KOnly if the result is successful, run the first action returning no result.*Runs the second action.\Only if the result is successful, run the first action returning the second action's result.+;Run the structure of actions stopping at the first failure.,@Traverse the structure of actions stopping at the first failure.-§readProcessWithExitCode creates an external process, reads its standard output and standard error strictly, waits until the process terminates, and then returns the > of the process, the standard output, and the standard error. readProcess and -$ are fairly simple wrappers around  createProcessk. Constructing variants of these functions is quite easy: follow the link to the source code to see how  readProcess is implemented.. Computation  system cmdR returns the exit code produced when the operating system runs the shell command cmd.This computation may fail withPermissionDeniedI: The process has insufficient privileges to perform the operation.ResourceExhaustedF: Insufficient resources are available to perform the operation.UnsupportedOperation9: The implementation does not support system calls. On Windows, .9 passes the command to the Windows command interpreter (CMD.EXE or  COMMAND.COM+), hence Unixy shell tricks will not work./The computation / cmd args$ runs the operating system command cmd1 in such a way that it receives as arguments the argsš strings exactly as given, with no funny escaping or shell meta-syntax expansion. It will therefore behave more portably between operating systems than ..;The return codes and possible failures are the same as for ..0HWaits for the specified process to terminate, and returns its exit code.1"This is a non-blocking version of 0%. If the process is still running, 70 is returned. If the process has exited, then 8 e is returned where e! is the exit code of the process.9 !"#$%&'()*+,-./01:;<=>?2  !"#$%&'()*+,-./012  -./ !"#$%&'()*+,019 !"#$%&'()*+,-./01:;<=>?@                        !"#$%&'()*+,-./0123456789:;6<=6>?6<@6AB6AC DEFGHIJComma_DwfNFAAnuSgHTDytA5Oe69System.Commandproce_FLTz0SLwyG6LJUpZ52HjkUSystem.ProcessrunInteractiveProcessrunInteractiveCommand runProcess runCommandterminateProcess readProcess createProcessshellprocSystem.Process.Internals ProcessHandle delegate_ctlc create_group close_fdsstd_errstd_outstd_inenvcwdcmdspec CreateProcess RawCommand ShellCommandCmdSpec CreatePipe UseHandleInherit StdStreamExitCodeexitCodesuccess isSuccess isFailure exitValueexitWith exitFailure exitSuccess->>->>>->-><<-<<<-<-<- runExitCodestraverseExitCodesreadProcessWithExitCodesystem rawSystemwaitForProcessgetProcessExitCodebaseGHC.IO.ExceptionIOErrorghc-prim GHC.TypesIOControl.Exception.Basecatch GHC.Exception SomeExceptionbracketGHC.BaseNothingJust toExitCode fromExitCode$fMonoidExitCode$fExceptionExitCode$fShowExitCode$fReadExitCode