h&U]P      !"#$%&'()*+,-./0123456789:; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~    Safe-Inferred!"$%&'(),./01245789:;<=>?polysemy-process A process ID. Safe-Inferred!"$%&'(),./01245789:;<=>?T polysemy-processIndicate whether to kill a process after exiting the scope in which it was used, if it hasn't terminated. polysemy-process+Wait for the specified interval, then kill. polysemy-processKill immediately.polysemy-process/Wait indefinitely for the process to terminate.     Safe-Inferred!"$%&'(),./01245789:;<=>?;polysemy-processControls the behaviour of  interpreters.polysemy-process6Whether to discard output chunks if the queue is full.polysemy-processMaximum number of chunks allowed to be queued for each of the three standard pipes.polysemy-processWhat to do if the process hasn't terminated when exiting the scope. Safe-Inferred!"$%&'(),./01245789:;<=>? >polysemy-processAn incremental parse result, potentially a partial result containing a continuation function.   Safe-Inferred!"$%&'(),./01245789:;<=>? "polysemy-process*Internal error used by an interpreter for ."#"#PtyResources ADT, Internal Safe-Inferred!"$%&'(),./01245789:;<=>? &polysemy-process2The resources used by the default interpreter for .&')+(*&')+(*SystemProcessError, Internal Safe-Inferred!"$%&'(),./01245789:;<=>? ,polysemy-processError for the scope of .-polysemy-processThe process couldn't start..polysemy-process Error for ./polysemy-processThe process terminated.0polysemy-process?Stdio was requested, but the process was started without pipes.,-.0/.0/,-ProcessError, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?M5polysemy-processSignal error for .6polysemy-processSomething broke.7polysemy-processThe process failed to start.8polysemy-process&The process terminated with exit code.57865786 Process Effect, Internal Safe-Inferred!"$%&'(),./01245789:;<=>? ;polysemy-process/Abstraction of a process with input and output.7This effect is intended to be used in a scoped_ manner: import Polysemy.Resume import Polysemy.Conc import Polysemy.Process import qualified System.Process.Typed as System prog :: Member (Scoped_ (Process Text Text !! err)) r => Sem r Text prog = resumeAs "failed" do withProcess do send "input" recv main :: IO () main = do out <- runConc $ interpretProcessNative (System.proc "cat" []) prog putStrLn out >polysemy-processObtain a chunk of output.?polysemy-processSend data to stdin.@polysemy-processCreate a scoped_ resource for ;. The process configuration may depend on the provided value of type param. This variant models daemon processes that are expected to run forever, with ) being sent to this function, if at all.Apolysemy-processCreate a scoped_ resource for ;. The process configuration may depend on the provided value of type param. This variant models processes that are expected to terminate, with 4 being sent to individual actions within the scope.Bpolysemy-processCreate a scoped_ resource for ;. The process configuration is provided to the interpreter statically. This variant models daemon processes that are expected to run forever, with ) being sent to this function, if at all.Cpolysemy-processCreate a scoped_ resource for ;. The process configuration is provided to the interpreter statically. This variant models processes that are expected to terminate, with 4 being sent to individual actions within the scope.Dpolysemy-processConvert  and  to ; for a daemon process.Epolysemy-processConvert  and  to ; for a oneshot process. ;=<>?@ABCDE ;=<>?@ABCDE ProcessInput effect, Internal. Safe-Inferred!"$%&'(),./01245789:;<=>?Fpolysemy-process"This effect is used by the effect = to encode values for process input. example using a parser.Gpolysemy-process5Encode a value for enqueueing it to a process' stdin.Gpolysemy-processThe value to encode.FGHFGH ProcessOutput effect, Internal. Safe-Inferred!"$%&'(),./01245789:;<=>?hIpolysemy-process"This effect is used by the effect $ to accumulate and decode chunks of s, for example using a parser. The interpreter may be stateful or stateless, since the constructor J is expected to be called with both the accumulated unprocessed output as well as the new chunk.Jpolysemy-processAdd a chunk of output to the accumulator, returning any number of successfully parsed values and the leftover output.Kpolysemy-processKind tag for selecting the I handler for stdout/stderr.Lpolysemy-processTag for stdout.Mpolysemy-processTag for stderr.Jpolysemy-process+The accumulation of the previous leftovers.polysemy-process$The new chunk read from the process.IJKMLPKMLIJP Pty Effect, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?Qpolysemy-process%A pseudo terminal, to be scoped with n.Rpolysemy-processThe file descriptor that can be connected to stdio of a process.Spolysemy-processSet the size of the terminal.Tpolysemy-processGet the size of the terminal.Upolysemy-process1Vertical size of a pseudo terminal in characters.Xpolysemy-process3Horizontal size of a pseudo terminal in characters.npolysemy-processBracket an action with the creation and destruction of a pseudo terminal.QSTRUVWXYZklmnXYZUVWQSTRmlkn SystemProcess Effect, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?"] opolysemy-processLow-level interface for a process, operating on raw chunks of bytes. Interface is modeled after System.Process.ppolysemy-processRead a chunk from stdout.qpolysemy-processRead a chunk from stderr.rpolysemy-processWrite a  to stdin.spolysemy-processObtain the process ID.tpolysemy-processSend a  to the process.upolysemy-process;Wait for the process to terminate, returning its exit code.|polysemy-processCreate a scoped resource for o. The process configuration may depend on the provided value of type param.}polysemy-processCreate a scoped resource for o. The process configuration is provided to the interpreter statically.~polysemy-process"Send signal INT(2) to the process.polysemy-process$Send signal TERM(15) to the process.polysemy-process#Send signal KILL(9) to the process.orqpsutvwxyz{|}~orqpsut{zyxwv|}~Executable helpers, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?$/polysemy-processFind a file in $PATH2, verifying that it is executable by this process.polysemy-processExecutable name, for $PATH lookup and error messagespolysemy-process8Explicit override to be checked for adequate permissions#ProcessInput Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?%lpolysemy-process Interpret F by passing  through.polysemy-process Interpret F by UTF-8-encoding .$ProcessOutput Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?* polysemy-process Interpret I by discarding any output.polysemy-process Interpret I by immediately emitting raw s without accumulation.polysemy-processTransformer for I that lifts results into , creating 'ProcessOutput p (Either a b)' from 'ProcessOutput p a'.polysemy-processTransformer for I that lifts results into , creating 'ProcessOutput p (Either a b)' from 'ProcessOutput p b'.polysemy-process Interpret I by emitting individual  lines of output.polysemy-process Interpret I by immediately emitting  without accumulation.polysemy-process Interpret I by emitting individual  lines of output.polysemy-processInternal helper for  that repeatedly parses elements from a chunk until the parser returns a failure or a partial result.polysemy-processWhenever a chunk of output arrives, call the supplied incremental parser whose result must be converted to . If a partial parse result is produced, it is stored in the state and resumed when the next chunk is available. If parsing an a. succeeds, the parser recurses until it fails.   Safe-Inferred!"$%&'(),./01245789:;<=>?-polysemy-processThe effects used by ; to send and receive chunks of bytes to and from a process.polysemy-process Interpret  with plain .s without chunking. Silently discards stderr.polysemy-process Interpret  with .s chunked as lines. Silently discards stderr.polysemy-process Interpret  with plain .s without chunking. Silently discards stderr.polysemy-process Interpret  with .s chunked as lines. Silently discards stderr.Pty Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?.polysemy-processInterpret Pty as a .$SystemProcess Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?4 polysemy-processConvenience alias for the " type used by native interpreters.polysemy-process Convenience alias for a vanilla ;, which will usually be transformed by interpreters to use s.polysemy-processHandle o with a concrete  with connected pipes.polysemy-process Interpret o with a concrete  with connected pipes.polysemy-process Interpret o as a single global  that's started immediately.polysemy-process Interpret o as a scoped  that's started wherever   is called and terminated when the wrapped action finishes. This variant is for parameterized scopes, allowing the consumer to supply a value of type param to create the process config.polysemy-process Interpret o as a scoped  that's started wherever   is called and terminated when the wrapped action finishes. This variant takes a static .polysemy-process Interpret o with a concrete  with no connection to stdio.polysemy-process Interpret o as a single global  that's started immediately.polysemy-process Interpret o as a scoped  that's started wherever  < is called and terminated when the wrapped action finishes.Process Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?E polysemy-process:Call a chunk reading action repeatedly, pass the bytes to I and enqueue its results. As soon as an empty chunk is encountered, the queue is closed if the gating action returns . The conditional closing is for the purpose of keeping the queue alive until the last producer has written all received chunks @ this is important when both stdout and stderr are written to the same queue. When a process writes to stdout and terminates, the stderr reader will immediately receive an empty chunk and close the queue while the stdout reader calls I, after which 6 will fail and the consumer won't receive the output.polysemy-process Interpret ; with a system process resource whose file descriptors are connected to three s, deferring decoding of stdout and stderr to the interpreters of two I effects. This variant: - Models a daemon process that is not expected to terminate, causing ; to be sent to the scope callsite instead of individual ; actions. - Is for parameterized scopes, meaning that a value of arbitrary type may be passed to !< which is then passed to the supplied function to produce a  for the native process.polysemy-process Interpret ; with a system process resource whose file descriptors are connected to three s, deferring decoding of stdout and stderr to the interpreters of two I effects. This variant: - Models a daemon process that is not expected to terminate, causing ; to be sent to the scope callsite instead of individual ;& actions. - Defers process config to o.polysemy-process Interpret ; as a native . This variant: - Models a daemon process that is not expected to terminate, causing ; to be sent to the scope callsite instead of individual ; actions. - Is for parameterized scopes, meaning that a value of arbitrary type may be passed to !< which is then passed to the supplied function to produce a  for the native process.polysemy-process Interpret ; as a native . This variant: - Models a daemon process that is not expected to terminate, causing ; to be sent to the scope callsite instead of individual ;& actions. - Defers process config to o.polysemy-process Reinterpret  and  as ;.polysemy-process*Interpret 'Input ByteString' by polling a  and stopping with 5 when it fails.polysemy-process*Interpret 'Input ByteString' by polling a  and stopping with 5< when it fails. This variant deactivates buffering for the .polysemy-process.Interpret 'Output ByteString' by writing to a  and stopping with 5 when it fails.polysemy-process.Interpret 'Output ByteString' by writing to a  and stopping with 5< when it fails. This variant deactivates buffering for the .polysemy-process Interpret ; in terms of  and  . Since the i and o parameters correspond to the abstraction of stdio fds of an external system process, i is written by  and o is read from . This is useful to abstract the current process's stdio as an external process, with input and output swapped.polysemy-process Interpret ; in terms of two s. This is useful to abstract the current process's stdio as an external process, with input and output swapped. The first  argument corresponds to the o parameter, the second one to i, despite the first one usually being the current process's stdin. This is due to ;9 abstracting an external process to whose stdin would be written, while the current one's is read.polysemy-process Interpret ; using the current process's stdin and stdout. This mirrors the usual abstraction of an external process, to whose stdin would be written, while the current one's is read.&&Process Interpreters, Internal Safe-Inferred!"$%&'(),./01245789:;<=>?Jpolysemy-process Interpret ; with a system process resource whose file descriptors are connected to three "#s, deferring decoding of stdout and stderr to the interpreters of two $ effects. Unlike %?, this variant sends errors inside the scope to the individual ; actions. This variant is for parameterized scopes, meaning that a value of arbitrary type may be passed to !< which is then passed to the supplied function to produce a  for the native process.polysemy-process Variant of  that takes a static .polysemy-process Interpret ; as a native . This variant is for parameterized scopes, meaning that a value of arbitrary type may be passed to !< which is then passed to the supplied function to produce a  for the native process.polysemy-process Interpret ; as a native . This variant takes a static .& Safe-Inferred!"$%&'(),./01245789:;<=>?KIJPIJP' Safe-Inferred!"$%&'(),./01245789:;<=>?K QSRTklmn QSRTklmn Safe-Inferred!"$%&'(),./01245789:;<=>?Mfpolysemy-process Create a 1 from an executable path and a list of arguments.polysemy-process Create a  from an shell command line.polysemy-process Create a  by looking up an executable in the path, and using the supplied arguments. Safe-Inferred!"$%&'(),./01245789:;<=>?N3polysemy-processObtain the current process's .ovwxyz{|~ovwxyz{|~%Polysemy Effects for System Processes Safe-Inferred!"$%&'(),./01245789:;<=>?O   ,.5687;>?@ABCFIKLMQno|};>?@BAC 5687IKLM Fo|}Qn.,(()*+,-./01234567889:;<=>?@ABCDEFGHHIJKKLMNOPQRSTUVWXYZQ[\]  ^ _ ` a b c d e f g h i j $ k l m n o p q  r s t u u v w w x y z { | } ~                   (            b%r"#0polysemy-process-0.12.1.0-EBvi12roHMEJUU8wlpPPuSPolysemy.Process.Data.Pid!Polysemy.Process.Data.ProcessKill$Polysemy.Process.Data.ProcessOptions.Polysemy.Process.Data.ProcessOutputParseResultPolysemy.Process.Data.PtyError"Polysemy.Process.Data.PtyResources(Polysemy.Process.Data.SystemProcessError"Polysemy.Process.Data.ProcessErrorPolysemy.Process.Effect.Process$Polysemy.Process.Effect.ProcessInput%Polysemy.Process.Effect.ProcessOutputPolysemy.Process.Effect.Pty%Polysemy.Process.Effect.SystemProcessPolysemy.Process.Executable)Polysemy.Process.Interpreter.ProcessInput*Polysemy.Process.Interpreter.ProcessOutput&Polysemy.Process.Interpreter.ProcessIO Polysemy.Process.Interpreter.Pty*Polysemy.Process.Interpreter.SystemProcess$Polysemy.Process.Interpreter.Process+Polysemy.Process.Interpreter.ProcessOneshotPolysemy.Process.SysProcConfPolysemy.Process.SystemProcessPolysemy.ProcessProcessPty SystemProcessPolysemy.ResumeStop System.PosixSystemwithSystemProcesswithProcessOneshotParamControl.Concurrent.STM.TBMQueueTBMQueue ProcessOutputinterpretProcessPolysemy.Process.ProcessOutputPolysemy.Process.PtyPid$sel:unPid:Pid$fEqPid $fShowPid $fReadPid$fNumPid $fRealPid $fEnumPid $fIntegralPid$fOrdPid ProcessKill KillAfterKillImmediately KillNever$fEqProcessKill$fShowProcessKillProcessOptions$sel:discard:ProcessOptions$sel:qsize:ProcessOptions$sel:kill:ProcessOptions$fDefaultProcessOptions$fEqProcessOptions$fShowProcessOptionsProcessOutputParseResultDonePartialFail$sel:value:Done$sel:leftover:Done$sel:continue:Done$sel:error:Done$fShowProcessOutputParseResultPtyError $fEqPtyError$fShowPtyError PtyResources$sel:primary:PtyResources$sel:secondary:PtyResources$sel:handle:PtyResources$sel:pty:PtyResourcesSystemProcessScopeError StartFailedSystemProcessError TerminatedNoPipes$fEqSystemProcessScopeError$fShowSystemProcessScopeError$fEqSystemProcessError$fShowSystemProcessError ProcessErrorUnknownExit$fEqProcessError$fShowProcessErrorRecvSendrecvsend withProcesswithProcessOneshot withProcess_withProcessOneshot_ runProcessIOrunProcessOneshotIO ProcessInputEncodeencodeChunk OutputPipeStdoutStderr$fEqOutputPipe$fShowOutputPipechunkHandleResizeSizeCols$sel:unCols:ColsRows$sel:unRows:Rows$fEqCols $fShowCols $fGenericCols $fNumCols $fRealCols $fEnumCols$fIntegralCols $fOrdCols$fEqRows $fShowRows $fGenericRows $fNumRows $fRealRows $fEnumRows$fIntegralRows $fOrdRowshandleresizesizewithPty ReadStdout ReadStderr WriteStdinSignalWait readStdout readStderr writeStdinpidsignalwaitwithSystemProcess_ interrupttermkillcheckExecutableresolveExecutableinterpretProcessInputIdinterpretProcessInputTextParserinterpretProcessOutputIgnoreinterpretProcessOutputIdinterpretProcessOutputLeftinterpretProcessOutputRight splitLinesinterpretProcessOutputLinesinterpretProcessOutputTextinterpretProcessOutputTextLines parseMany!interpretProcessOutputIncremental ProcessIOinterpretProcessByteStringinterpretProcessByteStringLinesinterpretProcessTextinterpretProcessTextLinestryStop acquirePty releasePty interpretPty PipesProcess SysProcConfprocessWithPipesstartwithProcessOpaque terminate processIdcheckEofhandleSystemProcessWithProcess!interpretSystemProcessWithProcess"interpretSystemProcessNativeSingle withProcConfinterpretSystemProcessNativeinterpretSystemProcessNative_'interpretSystemProcessWithProcessOpaque(interpretSystemProcessNativeOpaqueSingle"interpretSystemProcessNativeOpaque ScopeEffects ProcessQueues$sel:pqIn:ProcessQueues$sel:pqOut:ProcessQueuesErr$sel:unErr:ErrOut$sel:unOut:OutIn $sel:unIn:In terminatedinterpretQueueshandleProcessWithQueueswithSTMResources withQueues outputQueue inputQueue handleKillwithKillqueuesscopepscopeinterpretProcess_interpretProcessNativeinterpretProcessNative_interpretInputOutputProcessinterpretInputHandleBufferedinterpretInputHandleinterpretOutputHandleBufferedinterpretOutputHandleinterpretProcessIOinterpretProcessHandlesinterpretProcessCurrent$fEqErr $fShowErr$fEqOut $fShowOut$fEqIn$fShowIninterpretProcessOneshotinterpretProcessOneshot_interpretProcessOneshotNativeinterpretProcessOneshotNative_ processConfig shellConfigwhich currentPid'polysemy-1.9.0.0-C7gQKGjaovLLbvVSgxD7myPolysemy.OutputOutputPolysemy.InputInputbytestring-0.10.12.1Data.ByteString.Internal ByteString unix-2.7.2.2System.Posix.Signals text-1.2.5.0Data.Text.InternalTextbase Data.EitherLeftRight-typed-process-0.2.10.1-GkNTCb1fCLULnbevfRsEKbSystem.Process.Typed ProcessConfigGHC.IO.Handle.Typesghc-prim GHC.TypesFalse-polysemy-conc-0.12.1.0-IN7zTbvyEUT4xGb8NytYFIPolysemy.Conc.Effect.Queuewrite(stm-chans-3.0.0.6-IkvKahCCN2PGmUmoXdymwY.polysemy-resume-0.7.0.0-KErF3a0w7nwB9VDSrE1nW4Polysemy.Resume.Effect.Stop