úÎEªBñ      Safe-InferredHA class for specifying what results you want to collect from a process.  Values are formed of , ,  and tuples of those.  Collect the  of the process. , If you do not collect the exit code, any  will cause an exception.  Collect the stderr of the process.  If you are collecting the stderr<, it will not be echoed to the terminal, unless you include  .  Collect the stdout of the process.  If you are collecting the stdout<, it will not be echoed to the terminal, unless you include  . Options passed to  or ( to control how processes are executed. Should I echo the stderr? Defaults to  unless a  result is required. Should I echo the stdout? Defaults to  unless a  result is required. Should I include the stderr4 in the exception if the command fails? Defaults to . Name to use with traced, or ""E for no tracing. By default traces using the name of the executable.  Treat the stdin/stdout/stderr; messages as binary. By default streams use text encoding. †Pass the command to the shell without escaping - any arguments will be joined with spaces. By default arguments are escaped properly.  Given as the stdin' of the spawned process. By default no stdin is given. eChange the environment variables in the spawned process. By default uses this processes environment. gChange the current directory in the spawned process. By default uses this processes current directory. )Execute a system command. Before running  make sure you  any files % that are required by the command. 2This function takes a list of options (often just [], see   for the available Q options), the name of the executable (either a full name, or a program on the $PATH) and , a list of arguments. The result is often ()%, but can be a tuple containg any of ,   and . Some examples:     [] "gcc" ["-c","myfile.c"]N -- compile a file, throwing an exception on failure   c <-  [] "gcc" ["-c",myfile]? -- run a command, recording the exit code  ( c,  err) <-  [] "gcc" ["-c","myfile.c"]> -- run a command, recording the exit code and error output   out <-  [] "gcc" ["-MM","myfile.c"]3 -- run a command, recording the output   [ " generated"] "gcc" ["-c",myfile]/ -- run a command in a directory Unless you retrieve the  using , any  will throw an error, including  the . in the exception message. If you capture the  or 1, that stream will not be echoed to the console,  unless you use the option   or  .  If you use  inside a doO block and do not use the result, you may get a compile-time error about being  unable to deduce . To avoid this error, use .  A version of O where you do not require any results, used to avoid errors about being unable  to deduce . A variable arity version of .  String: arguments are treated as whitespace separated arguments.  [String]- arguments are treated as literal arguments.    arguments are used as options. To take the examples from :    () <-  "gcc -c myfile.c"V -- compile a file, throwing an exception on failure   c <-  "gcc -c" [myfile]H -- run a command, recording the exit code  ( c,  err) <-  "gcc -c myfile.c"K -- run a command, recording the exit code and error output   out <-  "gcc -MM myfile.c"@ -- run a command, recording the output   ( " generated") "gcc -c" [myfile] :: , () -- run a command in a directory #When passing file arguments we use [myfile] so that if the myfile5 variable contains spaces they are properly escaped.  If you use  inside a doO block and do not use the result, you may get a compile-time error about being  unable to deduce *. To avoid this error, bind the result to (), or include a type signature. 1  !"#$ %&'()*+,-./01234      !$#"  %&'()*+,-./012345       !"#$%&'()*+,-./0123456789: command-0.1.0System.CommandDevelopment.Shakeneed CmdResultExitfromExitStderr fromStderrStdout fromStdout CmdOption EchoStderr EchoStdout WithStderrTraced BinaryPipesShellStdinEnvCwdcommandcommand_cmdbaseGHC.IO.ExceptionExitCode ExitFailureghc-prim GHC.TypesTrueIOArgarg CmdArguments cmdArguments:-> cmdResultResult ResultCode ResultStderr ResultStdoutcommandExplicitforkWaitsaneCommandForUser$fArg[]$fArgCmdOption$fArg[]0$fArg[]1$fCmdArgumentsIO$fCmdArguments(->)$fCmdResult(,,)$fCmdResult(,) $fCmdResult()$fCmdResultStderr$fCmdResultStdout$fCmdResultExitCode$fCmdResultExit