!fa0Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXNone&'.48=?HMX_]>7shh-Specify how executables should be referenced.shh7Find executables on PATH, but store their absolute pathshhAlways search on PATHshhForce a `()` result.shh!A class for building up a commandshhqA class for things that can be converted to arguments on the command line. The default implementation is to use Y. shhAllow us to catch  exceptions in Z and  shhRun a   action, catching an  exceptions and returning them. shhCType representing a series or pipeline (or both) of shell commands. shh3Type used to represent destinations for redirects.  file is like > file in a shell, and  file is like >> file.shhThis class is used to allow most of the operators in Shh to be polymorphic in their return value. This makes using them in an ZD context easier (we can avoid having to prepend everything with a ").shhaUse this to send the output of on process into the input of another. This is just like a shells `|` operator.The result is polymorphic in it's output, and can result in either another `Proc a` or an `IO a` depending on the context in which it is used.echo "Hello" |> wc 1 1 6shhFlipped version of shh Similar to K except that it connects stderr to stdin of the next process in the chain.NB: The next command to be l on will recapture the stdout of both preceding processes, because they are both going to the same handle!,This is probably not what you want, see the  and  operators for redirection.shh3Redirect stdout of this process to another location ls &> Append "/dev/null"shh3Redirect stderr of this process to another location  ls &!> StdOutshhProvide the stdin of a   from a [shhRun a process and capture it's output lazily. Once the continuation is completed, the handles are closed, and the process is terminated.shhPWhen a process exits with a non-zero exit code we throw this Failure exception.qThe only exception to this is when a process is terminated by SIGPIPE in a pipeline, in which case we ignore it.shhTThis function needs to be called in order to use the library succesfully from GHCi. shh0Create a pipe, and close both ends on exception.!shh Shortcut for  "/dev/null""shhRun's a   in Zv. This is usually not required, as most commands in Shh are polymorphic in their return type, and work just fine in Z directly.#shh Create a  ( from a command and a list of arguments.$shhRead the stdout of a  N. This captures stdout, so further piping will not see anything on the input.3This is strict, so the whole output is read into a [. See 4 for a lazy version that can be used for streaming.%shhCApply a transformation function to the string before the IO action.&shhLike " except it splits the string with < first.'shhLike " except it splits the string with \ first.NB: Please consider using & where you can.(shhLike " except it splits the string with ] first.)shhRead and write to a   . Same as readProc proc <<< input*shhSome as ) . Apply a   to a [.apply shasum "Hello"/"f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 -\n"+shhFlipped, infix version of ,shhInfix version of -shhWhat on a given ^", and throw an exception of type 1 if it's exit code is non-zero (ignoring SIGPIPE).shh$Trim leading and tailing whitespace./shhRun a   action, ignoring any W exceptions. This can be used to prevent a process from interrupting a whole pipeline.false `|>` (sleep 2 >> echo 1).*** Exception: Command `false` failed [exit 1]/(ignoreFailure false) `|>` (sleep 2 >> echo 1)10shhRun an  R action returning the return code if an exception was thrown, and 0 if it wasn't.1shhLike $*, but trim leading and tailing whitespace.2shh%Get all files in a directory on your `$PATH`.TODO: Check for executability.3shh>Execute the given command. Further arguments can be passed in.  exe "ls" "-l" See also 4 and 7.4shh*Create a function for the executable named5shh$(loadExeAs fnName executable) defines a function called fnName which executes the path in  executable.6shh1Checks if a String is a valid Haskell identifier.7shh Scans your '$PATH' environment variable and creates a function for each executable found. Binaries that would not create valid Haskell identifiers are ignored. It also creates the IO action missingExecutablesk which will do a runtime check to ensure all the executables that were found at compile time still exist.8shhJTest to see if an executable can be found either on the $PATH or absolute.9shhcLoad the given executables into the program, checking their executability and creating a function missingExecutables/ to do a runtime check for their availability.:shhSame as 9., but allows you to modify the function names.;shhLike 7F, but allows you to modify the function name that would be generated.<shhFunction that splits '\0'7 seperated list of strings. Useful in conjuction with find . "-print0".=shh(A convinience function for reading in a "\NUL"K seperated list of strings. This is commonly used when dealing with paths. readSplit0 $ find "-print0">shh9A convinience function for reading the output lines of a  .Note: Please consider using = instead if you can.?shh Read output into a list of words@shhLike $, but attempts to _ the result.GshhThe ` instance for  V pipes the stdout of one process into the stdin of the next. However, consider using ( instead which behaves when used in an Z context. If you use a' in an IO monad you will be using the Z9 instance of semigroup which is a sequential execution.  prevents that error.Qshh'Commands can be executed directly in IOA  !"#$%&'()*+,-./0123456789:;<=>?@A ! "#$%&'()*+,-. /0123456789:;<=>?@None_|6 !"#$&'()*+,./0134579:;<=>?@63#"  !&'($1=>?@,+)*.</ 097:;45b      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_Z`aZbcZbdefgZhiZ`jZ`kl"shh-0.2.0.2-CH99He4JjdFEKiqmfxGvs3 Shh.InternalShh ExecReferenceAbsolute SearchPathUnitExecArgstoArgsExecArgasArg asArgFromList ProcFailure catchFailureProcStreamStdOutStdErrTruncateAppend PipeResult|><||!>&>&!> writeProcwithReadFailure failureProg failureArgs failureCodeinitInteractivewithPipedevNullrunProcmkProcreadProc withRead'withReadSplit0 withReadLines withReadWords readWriteProcapply>>><<<waitProctrim ignoreFailure catchCodereadTrimpathBinsexeloadExe loadExeAsvalidIdentifierloadEnvcheckExecutableload loadAnnotatedloadAnnotatedEnvsplit0 readSplit0 readLines readWordsreadAuto$fExceptionFailure $fShowFailure $fMonadProc$fApplicativeProc $fMonoidProc $fMonadIOProc$fSemigroupProc$fPipeResultProc$fPipeResultIO$fProcFailureIO$fProcFailureProc $fExecArgWord$fExecArgInteger $fExecArgInt $fExecArg[] $fExecArgChar $fExecArgsIO $fExecArgs->$fExecArgsProc$fUnitm$fUnit-> $fEqFailure $fOrdFailure $fFunctorProcbaseGHC.Showshowghc-prim GHC.TypesIOGHC.BaseString Data.OldListlineswordsprocess-1.6.3.0System.Process.Common ProcessHandle Text.Readread Semigroup<>