0i(      !"#$%&' (c) XT 2016 Apache 2.0 e@xtendo.org experimentalPOSIXSafe!"[ Creates a new process to run the specified command with the given arguments, and waits for it to finish. Throws an exception if the process returns a nonzero exit code. A*System.RawFilePath> callProcess "ls" ["-a", "src"] . .. SystemSame as f except the child process will share the parent's stdout and stderr, meaning it won't print anything.uRuns a command, reads its standard output strictly, blocking until the process terminates, and returns the output as (. >*System.RawFilePath> readProcess "date" ["+%s"] "1469999314\n"A 'safer' approach to n. Depending on the exit status of the process, this function will return output either from stderr or stdout. *System.RawFilePath> readProcessEither "date" ["%s"] Left "date: invalid date \226\128\152%s\226\128\153\n" *System.RawFilePath> readProcessEither "date" ["+%s"] Right "1469999817\n"FGet a list of files in the specified directory, excluding "." and ".." <*System.RawFilePath> listDirectory "src" ["..","System","."]FGet a list of files in the specified directory, including "." and ".." @*System.RawFilePath> getDirectoryFiles "src" ["..","System","."]LRecursively get all files in all subdirectories of the specified directory. S*System.RawFilePath> getDirectoryFilesRecursive "src" ["src/System/RawFilePath.hs"]9Copy a file from the source path to the destination path. WA function that "tries" to remove a file. If the file does not exist, nothing happens. *Returns the current user's home directory. Returns )4 if the argument file exists and is not a directory. Returns )0 if the argument file exists and is a directory. /Change the working directory to the given path.*Command to runCommand argumentsCommand to runCommand arguments+Command to runCommand argumentsThe output from the commandCommand to runCommand argumentsEither the stedrr output from the command if it finished with a nonzero exit code, or the stdout data if it finished normally. The path of directory to inspect A list of files in the directory The path of directory to inspect A list of files in the directory The path of directory to inspectA list of relative paths,-The source pathThe destination path .  *+,- ..5None!"[/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     (None!"[The class of types that determine the standard stream of a sub-process. You can decide how to initialize the standard streams (stdin, stdout, and stderr) of a sub-process with the instances of this class.Use the supplied X.No stream handle will be passed. Use when you don't want to communicate with a stream. For example, to run something silently.Inherit the parent (current) process handle. The child will share the stream. For example, if the child writes anything to stdout, it will all go to the parent's stdout.0Create a new pipe for the stream. You get a new X.]The process type. The three type variables denote how its standard streams were initialized.JThe process configuration that is needed for creating new processes. Use  to make one.(Executable & arguments, or shell command:Optional path to the working directory for the new processAOptional environment (otherwise inherit from the current process)How to determine stdinHow to determine stdout How to determine stderr!NClose all file descriptors except stdin, stdout and stderr in the new process"Create a new process group#Delegate control-C handling. Use this for interactive console processes to let them handle control-C themselves (see below for details).$dUse the windows CREATE_NEW_CONSOLE flag when creating the process; does nothing on other platforms. Default: False%\Use posix setsid to start the new process in a new session; does nothing on other platforms.&1Use posix setgid to set child process's group id. Default: Nothing'0Use posix setuid to set child process's user id. Default: Nothing9Create a process configuration with the default settings.BControl how the standard input of the process will be initialized.CControl how the standard output of the process will be initialized.BControl how the standard error of the process will be initialized.4Take a process and return its standard input handle.5Take a process and return its standard output handle.4Take a process and return its standard error handle.9()*+,-./0123456 !"#$%&'Command to runArguments to the command789:;<=>?@A4(+)*,.-/0123456 !"#$%&'789:;<()*+,-./0123456 !"#$%&'789:;<=>?@A444None !"[BCDBCDBCDNone!"[ EFGHIJKLMNOPQ RSFIJMNOPQ EFGHIJKLMNOPQ(C) XT et al. 2017 BSD-style (see the file LICENSE) e@xtendo.org experimentalPOSIXNone!"[ 5Start a new sub-process with the given configuration.!,Stop a sub-process. For now it simply calls # and then "."@Wait (block) for a sub-process to exit and obtain its exit code.#1Terminate a sub-process by sending SIGTERM to it. !"# !"# !#" !"# (c) XT 2016 Apache 2.0 e@xtendo.org experimentalPOSIXSafe!"[$Read an entire file at the  strictly into a (.%Write a ( to a file at the .& Append a ( to a file at the .'~Acquire a file handle and perform an I/O action. The file will be closed on exit or when this I/O action throws an exception.$%&'lTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~($%&'$%&'$%&'      !"#$%&'()*+,-./0123456789:;9<=9>?9@A9BC9DE9>F9>G9>H9>I9>J9>K9>L9>M9DN9OP9OQ9>R9>S9>T9>U12V9WX9WY9WZ9W[9>\9>]9>^9:_12`12a9bc9bd9be9bf9gh9gi9Dj12k9lm9no9np9nq9rs9rt9ru9rv9rw9rx9ry9rz9r{9r|9r}9r~9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9r9@9@9@9@9@9@9@9@9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n999999999999999999999999999999999B9B9B9B9B9B9B9B9B9B9B9B9B9B9O9<9<9<9<9<9<9<-9<9<9<9<9<9<,9<+9<*9<9<9<9<9<9<9<999999 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9  9 !9 "9 #9 $9 %9 &9'(9')9'*9'+9',9'-9'.9'/9'09'19'29'394596796896996:96;96<96=96>96?9r@9rA9rB9CD9CE9CF9CG9CH9CI9CJ9CK9CL9CM9CN9CO9CP9CQ9CR9CS9CT9UV9WX9WY9WZ9WZ9[\9[]9[^9[_9[`9[a9[b9[c9[d9[e9[f9[g9[h9[i9[j9[k9[l9[m9[n9[o9[p9[q9[r9[s9[t9[u9[v9[w9[x9[y9[z9[{9[|9[}9[~9[9[9[9[999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/909192939495969798999:9;9<9=9>9?9@9A9B9C9C9DE9DF9DG9DH9DI9DJ9DK9DL9DM9DN9DO9DP9DQ9DR9DS9DT9DU9DV9DW9DX9DY9DZ9D[9D\9D]9D^9D_9D`9Da9bc9bd9be9bf9bg9bh9bi9bj9bk9bl9bm9bn9bo9bp9bq9rs9rt9ru9rv9rw9xy9xz9x{9x|9x}9x~9x9x9x9x9x9x9x9x9x9x9x9x9x9x9x9x99999999999999999999999@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9@9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9C9C9C999999999999999999999999l9l9l9l9l9l9l9l9l9l99999999  9  9  9  9  9  9  9  9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9  9 !9 "9 "9 #9 #9 $9 $9 %9 %9&'9&(9&)9&*9&+9&,9&-9&.9&/9:09:19:29:394594694794894994:94;94<94=94>94?94@94A94B94C94D94E94F94G94H94I94J94K94L94M94N9OP9OQ9OR9OS9TU9TV9TV9TW9TX9TX9TY9TZ9TZ9T[9T\9T\9T]9T^9T^9T_9T`9T`9Ta9Tb9Tb9Tc9Td9Td9Te9Tf9Tf9Tg9gh9gi9gj9gk9gl9gm9gn9go9gp9qr9qs9qt9qu9qv9qw9qx9qy9qz9q{9q|9q}9q~9@9@9@9@9@9@9@9@9@9@999999999999999999999D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9b9b9b9999999999999999999999999999999999999999999999999999999999999999>9>9>9> 9> 9> 9> 9> 9>9>9>99 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGFH.I.I.I0.IJ.IK.IL.I.I.I-.I..IM.IN.I1.I.IO.IP.IQ.IR.IS.IT.IU.IV.IW.IX.IY.IZ.I[.I\.I].I^.I_.I`.Ia.Ib.Ic.Id.Ie.If.Ig.Ih.Ii.Ij.Ik.Il.Im.In.Io.Ip.Iq.Ir.Is.It.Iu.Iv.Iw.Ix.Iy.Iz.I{.I|.I}.I~.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I(rawfilepath-0.1.1-D29OMnc7lgHFR83ft451apSystem.RawFilePathSystem.Process.RawFilePathData.ByteString.RawFilePathRawFilePath.Import!System.Process.RawFilePath.Common#System.Process.RawFilePath.Internal System.Process.RawFilePath.Posix unix-2.7.2.0 System.Posix.ByteString.FilePath RawFilePath callProcesscallProcessSilent readProcessreadProcessEither listDirectorygetDirectoryFilesgetDirectoryFilesRecursivecopyFile tryRemoveFilegetHomeDirectory doesFileExistdoesDirectoryExistsetCurrentDirectory StreamType UseHandleNoStreamInherit CreatePipeProcess ProcessConfprocsetStdin setStdout setStderr processStdin processStdout processStderr startProcess stopProcesswaitForProcessterminateProcessreadFile writeFile appendFilewithFilebytestring-0.10.8.1Data.ByteString.Internal ByteStringghc-prim GHC.TypesTrue processErrorgetContentsAndClose defaultFlags bufferSizebase GHC.Stable newStablePtr System.IOprintGHC.BaseassertGHC.IO.Exception assertError Control.MonadguardData.Typeable.InternalmkAppTyjoinMonad>>=>>returnfailFunctorfmapTypeableData.TraversablemapMsequenceMonoidmemptymappendmconcatIntGHC.IntInt8Int16Int32Int64MaybeNothingJust StablePtrIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtrTypeRepTyConGHC.ForeignPtr ForeignPtrGHC.IO.Handle.TypesHandle FileHandle DuplexHandleGHC.IO.Handle.Internals decodeByteBufreadTextDeviceNonBlockingreadTextDevicedebugIO hLookAhead_closeTextCodecsopenTextEncodinginitBufferStatemkHandleflushByteReadBufferflushCharReadBufferwriteCharBufferflushByteWriteBufferflushWriteBufferdEFAULT_CHAR_BUFFER_SIZEhandleFinalizer ioe_bufsizioe_finalizedHandleioe_notWritableioe_notReadableioe_EOFioe_semiclosedHandleioe_closedHandlewantSeekableHandlewantReadableHandle_wantReadableHandlewantWritableHandleaugmentIOError withHandle__'withAllHandles__ withHandle_' withHandle_ withHandle' withHandleHandleFinalizerflushCharBuffer flushBufferuntangle ioException heapOverflow stackOverflowallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarunsupportedOperation showHandlecheckHandleInvariantsisReadWriteHandleTypeisWritableHandleTypeisReadableHandleTypeHandle__haDevicehaType haByteBuffer haBufferMode haLastDecode haCharBuffer haBuffers haEncoder haDecoderhaCodec haInputNL haOutputNL haOtherSide BufferList BufferListNilBufferListCons HandleType ClosedHandleSemiClosedHandle ReadHandle WriteHandle AppendHandleReadWriteHandle System.Exitdie exitSuccess exitFailureexitWithControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChanmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMforM(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilehPrinthReadylocaleEncodingreadIOreadLninteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.Handle.FD fdToHandle fdToHandle'mkHandleFromFDopenBinaryFileopenFileBlockingopenFileisEOFstderrstdin GHC.IO.HandlehShowhSetNewlineModehSetBinaryModehIsTerminalDevicehGetEchohSetEcho hIsSeekable hGetBuffering hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeekhSetPosnhGetPosn hGetEncoding hSetEncoding hSetBuffering hLookAheadhIsEOF hSetFileSize hFileSizehClose HandlePosnGHC.IO.Handle.TexthGetBufNonBlocking hGetBufSomehGetBufhPutBufNonBlockinghPutBuf hPutStrLnhPutStrhPutChar hGetContentshGetLinehGetChar hWaitForInput GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVar hClose_helpmkDuplexHandle mkFileHandleGHC.IO.Encoding latin1_decode latin1_encodemkTextEncodingchar8initLocaleEncodingsetForeignEncodingsetFileSystemEncodingsetLocaleEncodingutf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1System.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorType isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustcatchPatternMatchFail RecSelError RecConError RecUpdError NoMethodError TypeErrorNonTerminationNestedAtomicallySystem.Posix.TypesCDevCInoCModeCOffCPidCSsizeCGidCNlinkCUidCCcCSpeedCTcflagCRLimFd LinkCountUserIDGroupID ByteCount ClockTick EpochTimeDeviceIDFileIDFileMode ProcessID FileOffsetProcessGroupIDLimit GHC.Conc.SyncmkWeakThreadIdthreadCapabilityyield myThreadIdthrowTo killThreadsetNumCapabilitiesgetNumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOThreadIdstdouthFlushForeign.C.ErrorerrnoToIOErrorthrowErrnoPathIfMinus1_throwErrnoPathIfMinus1throwErrnoPathIfNullthrowErrnoPathIf_throwErrnoPathIfthrowErrnoPaththrowErrnoIfNullRetryMayBlockthrowErrnoIfNullRetrythrowErrnoIfNull throwErrnoIfMinus1RetryMayBlock_throwErrnoIfMinus1RetryMayBlockthrowErrnoIfMinus1Retry_throwErrnoIfMinus1RetrythrowErrnoIfMinus1_throwErrnoIfMinus1throwErrnoIfRetryMayBlock_throwErrnoIfRetry_throwErrnoIfRetryMayBlockthrowErrnoIfRetry throwErrnoIf_ throwErrnoIf throwErrno resetErrnogetErrno isValidErrnoeXDEV eWOULDBLOCKeUSERSeTXTBSY eTOOMANYREFS eTIMEDOUTeTIMEeSTALEeSRMNTeSRCHeSPIPEeSOCKTNOSUPPORT eSHUTDOWNeRREMOTE eRPCMISMATCHeROFSeREMOTEeREMCHGeRANGE ePROTOTYPEePROTONOSUPPORTePROTO ePROGUNAVAIL ePROGMISMATCH ePROCUNAVAILePROCLIMePIPE ePFNOSUPPORTePERM eOPNOTSUPPeNXIOeNOTTYeNOTSUPeNOTSOCK eNOTEMPTYeNOTDIReNOTCONNeNOTBLKeNOSYSeNOSTReNOSReNOSPC eNOPROTOOPTeNONETeNOMSGeNOMEMeNOLINKeNOLCKeNOEXECeNOENTeNODEVeNODATAeNOBUFSeNFILE eNETUNREACH eNETRESETeNETDOWN eNAMETOOLONG eMULTIHOPeMSGSIZEeMLINKeMFILEeLOOPeISDIReISCONNeIOeINVALeINTR eINPROGRESSeILSEQeIDRM eHOSTUNREACH eHOSTDOWNeFTYPEeFBIGeFAULTeEXISTeDQUOTeDOMeDIRTY eDESTADDRREQeDEADLK eCONNRESET eCONNREFUSED eCONNABORTEDeCOMMeCHILDeBUSYeBADRPCeBADMSGeBADFeALREADYeAGAIN eAFNOSUPPORTeADV eADDRNOTAVAIL eADDRINUSEeACCESe2BIGeOKErrnoForeign.C.StringwithCWStringLen withCWStringnewCWStringLen newCWStringpeekCWStringLen peekCWStringwithCAStringLen withCAStringnewCAStringLen newCAStringpeekCAStringLen peekCAStringcastCharToCSCharcastCSCharToCharcastCharToCUCharcastCUCharToCharcastCharToCCharcastCCharToCharcharIsRepresentablewithCStringLen withCString newCStringLen newCStringpeekCStringLen peekCStringCString CStringLenCWString CWStringLenForeign.Marshal.PoolpooledNewArray0pooledNewArray pooledNewpooledReallocArray0pooledReallocArraypooledMallocArray0pooledMallocArraypooledReallocBytes pooledReallocpooledMallocBytes pooledMallocwithPoolfreePoolnewPoolPoolForeign.Marshal.Error throwIfNull throwIfNeg_ throwIfNegthrowIf_throwIfForeign.Marshal.Array advancePtr lengthArray0 moveArray copyArray withArrayLen0 withArray0 withArrayLen withArray newArray0newArray pokeArray0 pokeArray peekArray0 peekArray reallocArray0 reallocArray allocaArray0 allocaArray callocArray0 callocArray mallocArray0 mallocArrayForeign.Marshal.Utils fillBytes moveBytes copyByteswithMany maybePeek maybeWithmaybeNewtoBoolfromBoolwithnewForeign.Marshal.Allocfree reallocBytesreallocallocaBytesAligned allocaBytesalloca callocBytes mallocBytescallocmalloc finalizerFreeioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededAssertionFailedSomeAsyncExceptionAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptArrayExceptionIndexOutOfBoundsUndefinedElementExitCode ExitSuccess ExitFailure IOErrorTypeEOF AlreadyExists NoSuchThing ResourceBusyResourceExhaustedIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptednoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewline BufferMode NoBuffering LineBufferingBlockBufferingNewlineLFCRLF NewlineModeinputNLoutputNLgetForeignEncodinggetFileSystemEncodinggetLocaleEncodingGHC.IO.Encoding.Types BufferCodeccloseencoderecovergetStatesetState TextDecoder TextEncoder TextEncodingtextEncodingName mkTextDecoder mkTextEncoderCodingProgressInputUnderflowOutputUnderflowInvalidSequenceForeign.ForeignPtr.ImpmallocForeignPtrArray0mallocForeignPtrArraynewForeignPtrEnvwithForeignPtr newForeignPtrfinalizeForeignPtrcastForeignPtrtouchForeignPtrnewForeignPtr_addForeignPtrFinalizerEnvaddForeignPtrFinalizermallocForeignPtrBytesmallocForeignPtr FinalizerPtrFinalizerEnvPtr Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtrForeign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCFloatCDoubleCPtrdiffCSizeCWchar CSigAtomicCClockCTime CUSeconds CSUSecondsCFileCFposCJmpBufCIntPtrCUIntPtrCIntMaxCUIntMaxForeign.StorableStorablesizeOf alignment peekElemOff pokeElemOff peekByteOff pokeByteOffpeekpokecastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtr GHC.IO.DeviceRawIOreadreadNonBlockingwritewriteNonBlockingIODeviceready isTerminal isSeekableseektellgetSizesetSizesetRawdevTypedupdup2 IODeviceTypeStream Directory RegularFile RawDeviceSeekMode AbsoluteSeek RelativeSeek SeekFromEnd Data.Foldablemsum sequence_forM_mapM_ Data.Monoid<>DualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductFirstgetFirstLastgetLastAltgetAltcastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtrGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingState interruptiblethrowIOFilePath MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptible userError IOExceptionIOError ioe_handleioe_type ioe_locationioe_description ioe_errno ioe_filename GHC.Exceptionthrow Exception toException fromExceptiondisplayException ErrorCallErrorCallWithLocationArithExceptionOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominator Data.Typeablegcast2gcast1gcasteqTcast rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep typeRepArgs typeRepTyCon funResultTy splitTyConAppmkFunTy mkTyConApptypeRepFingerprintrnfTyConmkTyCon3tyConFingerprint tyConString tyConName tyConModule tyConPackage Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7 byteSwap64 byteSwap32 byteSwap16 GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeData.Type.Equality:~:Refl Data.ProxyProxy Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBits.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.Functorvoid Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVar GHC.IO.UnsafeunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOapliftM5liftM4liftM3liftM2liftMwhen=<< MonadPlusmzeromplus SomeExceptioncmdargscwdenvcfgStdin cfgStdout cfgStderrcloseFds createGroup delegateCtlccreateNewConsole newSession childGroup childUserProcessHandle__ OpenHandle OpenExtHandlePHANDLEmbFdwillCreateHandle procStdin procStdout procStderrphandlembDelegateCtlc waitpidLockmodifyProcessHandlewithProcessHandlefdStdinfdStdoutfdStderrmbPipe pfdToHandle$fStreamTypeUseHandle$fStreamTypeNoStream$fStreamTypeInherit$fStreamTypeCreatePipec_waitForProcessc_getProcessExitCodec_terminateProcessc_runInteractiveProcess closePHANDLEwithManyByteStringcopyByteStringswithCEnvironmentcreateProcessInternalrunInteractiveProcessLock!runInteractiveProcessDelegateCtlcstartDelegateControlCstopDelegateControlCendDelegateControlC createPipecreatePipeInternalFdSystem.Posix.Process.InternalspPrPr_disableITimers c_execvpeData.ByteStringhGetSomehGetNonBlockinghGethPutNonBlockinghPutcopypackCStringLen packCStringuseAsCStringLen useAsCStringsorttailsinitsunzipzipWithzipfindSubstrings findSubstringbreakSubstring isInfixOf stripSuffix isSuffixOf stripPrefix isPrefixOf partitionfindfilternotElemelem findIndices findIndexcount elemIndices elemIndexEnd elemIndexindex intercalategroupBygroupsplit splitWithspanEndspanbreakEnd breakBytebreak dropWhile takeWhilesplitAtdroptakeunfoldrNunfoldr replicatescanr1scanrscanl1scanl mapAccumR mapAccumLminimummaximumallany concatMapconcatfoldr1'foldr1foldl1'foldl1foldr'foldrfoldl'foldl transpose interspersereversemapappendunsnocinitlastunconstailheadsnocconslengthnullunpackpack singletonempty