HOOGW? |_ a c d e fgh ikl m n o p r s t u vw xy azwuXj()->All|Any[ArithExceptionNArrayExceptionAAsyncException4Bool BufferMode BufferStateCCharCClocktCDevBCDoubleCFloatCInoHCIntCIntMaxCIntPtrpCLDoubleCLLongCLongCMode?COffCPidCPtrdiffgCSCharCShort CSigAtomicCSizeGCSsizeCTimeCUCharCUInt=CUIntMaxCUIntPtrCULLongeCULongCUShortCWcharChanCharAComplex6 ConsoleEventConstr  ConstrRepDataRepDataTypeDoubleDynamicyE12jE6[ErrnoW ExceptionNExitCode<FDType8FdFixityFloatGeneralCategoryfHandleX HandlePosnO HandleTypeIHashData@IO IOErrorType IOException IOMode Id Inserts Int Int165 Int32 Int64 Int8B IntPtr Integer Lexeme Maybe] Ordering/ P Permissions QSem QSemN ReadP ReadPrec STM SeekMode StableName TVar} ThreadIdb TimeoutU TyConO TypeRepI UniqueA Version& Weak Word Word16y Word32( Word64Word8WordPtr>ZipList)[::][] TraversableFoldableMonadFix Applicative Alternative MonadPlusFunctorMonadFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataEqOrdNumEnumIntegralBitsShowRealBoundedIxRead PrintfArgStorableDataNumEnumIntegralBitsShowRealBoundedIxReadOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq Typeable1EqOrdShowReadTypeableOrdEqDataDataEqTypeableDataShowEqOrdTypeable Typeable1 Typeable1ShowReadEnumIxOrdEq Typeable1FunctorMonadFunctorMonad MonadPlusFunctorMonad MonadPlusTypeableTypeableShowReadOrdEqMonad MonadPlus MonoidDataReadShowBoundedEnumIxOrdEq TraversableFoldableMonadFix Applicative AlternativeFunctorMonad MonadPlusShowEqRead PrintfArgBitsDataReadEqOrdNumEnumShowIxRealIntegral ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataEqOrdShowNumEnumIntegralReadBitsRealBoundedIx PrintfArgStorableDataShowNumEnumIntegralReadBitsRealBoundedIxOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgBitsStorableDataReadShowNumBoundedEnumIxRealIntegralEqOrdEqFunctor ApplicativeShowReadEnumIxOrdEqEqShowEqShowMonadFix ApplicativeFunctorMonadShowEqShowEqShowDataEqShowIxBoundedShowReadEnumOrdEq PrintfArgStorableDataEqOrdNumReal FractionalRealFracFloating RealFloatShowEnumReadShowEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqShowReadOrdEqShowEqEq HasResolution HasResolutionTypeableShow PrintfArgStorableDataEqOrdNumReal FractionalFloatingRealFrac RealFloatShowEnumReadTypeableDataShowShowEqShowEqShowEqReadShowEnumOrdEqTypeable Typeable1 PrintfArgIsCharStorableDataReadShowBoundedEnumIxEqOrd Typeable1 ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqShowReadOrdEq StorableDataReadShowBoundedEnumIxOrdEqShowOrdEqShowOrdEqShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoop MonoidDataReadShowBoundedEnumIxEqOrd5 ByteCountPCDirKCDirentFCFLockACGroup<CLconv7CPasswd2 CSigaction-CSigset(CStat#CString CStringLenCTermiosCTmCTmsCUtimbufCUtsnameCWString CWStringLen ClockTickConIndexDeviceID EpochTimeFDFileIDFileMode FileOffsetyFilePathlFinalizerEnvPtr9 FinalizerPtrGenericGenericBGenericMGenericQGenericRGenericTHandlePositionIOErrorIPrLimitMicroPHANDLEPico{PrecuProcessGroupIDn ProcessIDgRationalT RawBuffer3ReadSSTRep SampleVarShowSString[]Char[]Char[]CharaMVar(,)IntMVarasaState#s(#,#)State#saa[]Char[](,)a[]CharMutableByteArray# RealWorldRatioIntegerCPidCPidIntFixedE12Word32FixedE6CLong(,)IntInt IOExceptionIntegeraammararmamaacacaaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoCIntCTimeCDevIntCClock(,)PtrCWcharIntPtrCWchar()()()()()(,)PtrCCharIntPtrCChar()()()()()()()()()CSize(u:su[?ua%obkc_dB[e&Xf'RgPhMi GjFkFlCm@n=o_:p5qf5r#/sw)t^&u#vW#w ziplis t ZipList#M#13#3#6"8"e"o!rF a iR tY e` b h mq ox d e IOModea n d l e  HandleTypeu f f e r  BufferStatep!a!m!p!e!d!a]!m+!o2!n9!a@!dG! WrappedMonadrd!rk!or!wy! WrappedArrowo!n!a!d! WrappedMonadr!r!o!w! WrappedArrowr!d!Word#"1"3"6S"8D"p%"t,"r3"WordPtrWord84Z"Word64#o"Word64#2"Word326"Word16Word#a"k"Weak#"Weak##"Word84## #Word642 ##'#Word326:##A#Word16Worde^#re#sl#is#oz#n#VersionnU$p#s#e#r#e#r#r#o#r# IOErrorTypep#e#r#c$a$s$e$l$e$$t+$t2$e9$r@$GeneralCategoryd%i%sf$a$ur$py$p$o$r$t$e$d$o$p$e$r$a$t$i$o$n$ IOErrorTypet$i%s%f%i%e%d$%c+%o2%n9%s@%tG%rN%aU%i\%nc%tj%sq% IOErrorTypeq%t%Unitu%e%Uniquee%f%r%f%l%o%w%ArithExceptioni&n &e&d&e &l'&e.&m5&e<&nC&tJ&ArrayExceptionh(i)(r'v'yy&c'p&e&a&r&e&p&TypeRepb&l&e&Typeable1s'2`'3M'4:'5''6'7' Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1o'n'TyCona'r'TVara'u'e'Boolv'e'r's'a'b(l (e( Traversablem(t5(l<(eC(cJ(aQ(sX(e_(lf(em(tt(t{(e(r(GeneralCategorye(e(x(p(i(r(e(d( IOErrorTyper(e(a(d)iF)k)i)l)l$)e+)d2)AsyncExceptiondM)ThreadId#d) ThreadId##/a.e-h-p,to*u*y)m)s)t)e)m)e)r)r)o)r) IOErrorTypeb)o*l *Lexememb*r#*r**o1*g8*a?*tF*eM*GeneralCategorySumSTa+m+of+r*e+i*n*g*Stringc*r*e*p*DataRepo*n*s*t*r+ ConstrRepaS+fD+p5+t&+STretSTRepSTRefmZ+FDTyperm+at+b{+l+e+StorableSTMbU,c,r+t+e+#+State#r+a+y+STArrayk ,o,v,e,r%,f,,l3,o:,wA,AsyncExceptionl\,ec,n,po,tv,r}, StablePtr#, StablePtr#a,m,e, StableNamea,c,ej-i,n,g,c-o-m-b-i-n$-i+-n2-g9-m@-aG-rN-kU-GeneralCategoryGeneralCategoryo-u-t-d-o-w-n- ConsoleEventw-Shows-ShowSe`.m-i-c.l .o.s.e.d&.h-.a4.n;.dB.lI.eP. HandleTypekg.f.ms.oz.d.e.SeekModer.o.m.e.n.d.SeekModem.p.l.e.v.a.r/ SampleVarIntegera4eU/i4/g;/hB/tI/Eithera2c1gn1l!1q0s/tz/u/r/n/i/n/o/r/d/e/r/ArgOrdero/u/r/c/e/b0eD0v0a 0n0i0s0h%0e,0d30 IOErrorTypexK0hR0aY0u`0sg0tn0eu0d|0 IOErrorTypeu0s0y0 IOErrorTypea1u0i0r0e0o0r0d0e0r0ArgOrderr 1g1ArgDescra(1t/1i61v=1eD1sK1eR1eY1k`1SeekModeuu1l|1a1r1f1i1l1e1FDTypecC2s2u1p1d1e1r1r1o1r1 Exceptione 2l2e2r2r&2o-2r42 ExceptionoJ2nQ2eX2r_2rf2om2rt2 Exceptiond*3l2Realf2w2o2r2l2d2 RealWorldl3r2a2c2RealFraco 3a3t3 RealFloatReadbi4h64m4p3s3wV3r]3id3tk3er3h3m~3o3d3e3IOModea3n3d3l3e3 HandleTypeReadSReadPr3e3c4ReadPreco4d#4e*4IOModea=4nD4dK4lR4eY4 HandleTypeup4fw4f~4e4r4 BufferStatet5w4b4d4e4v4i4c4e4FDTypeu4f4f4e5r5 RawBufferLexemei+5o25RationF5aM5lT5Rationalsm5et5m{5QSemn5QSemNak9e8h8im8oQ8r5t5u5n5c5Lexemer5Ptre8in7o6c6dg6t6o6c%6o,6l36e:6rA6rH6oO6rV6 IOErrorTypeun6cu6t|6Producte6s6s6g,7h6i6d6 ProcessIDa6n6d6l6e6 ProcessHandle_ 7_7ProcessHandle__r37o:7uA7pH7iO7dV7ProcessGroupIDn7vz7a7t7e7u7s7e7GeneralCategoryt7f7a7t7y7p7e7 PrintfTyper8g 8 PrintfArgcC8f)8i08x78FixityPrecoX8l_8Poolct8o{8Picoa8n8d8l8e8PHANDLEr8m8i8u8t8e8ArgOrders8s9i9o9n9d79s"9 Permissionse>9nE9iL9eS9dZ9 IOErrorTyper9tw9t~9e9r9n9m9a9t9c9h9f9a9i9l9 Exceptiona9g9r9a9p:h :s:e:p :a':r.:a5:t<:oC:rJ:GeneralCategoryOpaqueb=pi<r"<t:v:e:r:f:l:o:w:ArithExceptionh:e:r:e;l;n;p*;s:y:m;b;o;l;GeneralCategoryu1;n8;c?;tF;uM;aT;t[;ib;oi;np;GeneralCategoryu;m;b;e;r;GeneralCategorye;t;t;e;r;GeneralCategoryr;r<o <r< IOErrorTyped)<Orde;<rB<iI<nP<gW<Orderinga=e<tz<a<d<i<o<n<OptDescre<s<c<r<OptDescrr<g<ArgDescrn<h_=p=u =n=c=t =u'=a.=t5=i<=oC=nJ=GeneralCategoryaf=nm=dt=l{=e=ProcessHandle__q=u=e=Opaquej=e=c=t=Objecte}@o >u=m>Numaa@b@m?n?r>s>t2>a^>h>>iE>nL>gS>Maybese>sl>is>gz>n>e>d>GeneralCategoryu>c>h>t>h>i>n>g> IOErrorTypee>p>DataRepsi?t?e?r"?m)?i0?n7?a>?tE?iL?oS?nZ? Exceptionpp?aw?c~?i?n?g?m?a?r?k?GeneralCategorye?t?h?o?d?e?r?r?o@r @ Exceptionu @f'@f.@e5@r<@iC@nJ@gQ@ BufferModerh@go@ArgDescrs@t@e@d@a@t@o@m@i@c@a@l@l@y@ ExceptionaCidCo'Bu9Av AaArAMVar#*AMVar#t@AarAvLAaSArZA#aAMutVar#byAlAeAaAbAyAtAeAaArArAaAyA#AMutableByteArray#rArAaBy B#B MutableArray#dBn3Ba]Bo?BiFBdMBMonoidddBMonadfBp}BlBuBsB MonadPlusiBxBMonadFixiBfBiBeBrBl,CsByBmCb CoClCGeneralCategorye3Ct:CtACeHCrOCGeneralCategoryckCrrCoyCMicrotCyCbCeCMaybehCsCyCmCbCoClCGeneralCategoryaFeEi)Eo DtDOrderinggEsDw1De8Dr?DcFDaMDsTDe[DlbDeiDtpDtwDe~DrDGeneralCategorysDoDfDpDrDeDcDiDsDiDoDnDArithExceptiono EfEfE ConsoleEventmEn5EeFrEFnLFuSFmZFbaFehFroFGeneralCategorytFEithersFtFLastlFeFiFsFlFiFKleisli#GuFsGtGMaybeInteger #M1M3M6M8pMdOMg&MlLnIoGpGsoGxcGIxcGs{GtGrGiGnGgGIsStringhGaGrGIsCharrGIPrIOaHeKHm&Hr HeHfHIORefo-Hd4He;HIOModerHxWHc^HeeHplHtsHizHoHnH IOExceptionrHoHrHIOErrortHyHpHeH IOErrorTyperHrIaIyIIOArraya@LdKfKicKlZKrQKtIvIIaPIlWIi^IdeIalIrsIgzIuImIeInItI IOErrorTypeInt #CK1-K3K6J8JcJe!JpJrIeIpIDataRept JrJIntPtrghJr-Jr4Ju;JpBJtIJePJdWJ IOErrorTypeeJrtJa{JlJIntegralrJIntegeroJnJsJtJrJ ConstrRepInt84JInt64#KInt64#2KInt3264KInt16Int#:+::+:tjKiqKaxKlKqKuKoKtKeKGeneralCategoryiKxKFixityeKxKoKuKtKoKfLb LoLuLnLd%Ls,LArrayExceptionpGLpNLrULo\LpcLrjLiqLaxLtLeLtLyLpLeL IOErrorTypelLeLgLaLlLoLpLeLrLaLtMiMoMnM IOErrorTypen-Mo4Mr;MeBMHandlereVMn]MtdMLexeme#wMInt84M#MInt642M#MInt326M#MInt16IntaNe:NpMrMiMnMtNf NtNyNpNe%N HPrintfTypeaANpHNoONvVNe]NrdNfkNlrNoyNwNAsyncExceptionnOr=OsNhOrNeNsNoNlNuNtNiNoNnN HasResolutiontOaObOl#Oe*O HashTabledDOwKOaROrYOe`OfgOanOuuOl|OtO IOErrorTypedOlOeOHandle_iPpPrOtOyOpOeO HandleTypeHandleroPsPi5Pn!P HandlePosntanEacLaySasZayaamhaboaoval}aGeneralCategorylaoanagaCULongoanagaCULLongnataCUIntm)bp btbrbCUIntPtra0bx7bCUIntMaxhPbaWbr^bCUCharebibmbCTmsbCTmsmbebCTimerbmbibobsbCTermiosc~dhYdics{ct caecrcicn&cg-cCStringlCceJcnQc CStringLentlcCStaticzcecCSsizegczcecCSizeacscectcCSigsetc)dtcodmdidcd CSigAtomict0di7do>dnEd CSigactiono`drgdtndCShorthdadrdCSCharadidtdrdddidfdfdCPtrdiffddCPidses ewedeCPasswdfgmfnftEfoLfrSfpZfuafnhfcoftvfu}faftfifofnfGeneralCategorynfdfefxfConIndexpflfefxfComplexfgCOffo,gd3ge:gCModechdhlho_gcChn-hspgewg ConsoleEventdgpgugngcgtgugagtgigogngGeneralCategoryhgagnhd hlhehProcessHandle__g4hCLongkJhtQhiXhc~hmdhekh ClockTimekh ClockTickohnhghCLLongohuhbhlhehCLDoubleohniviCLconvmip%ib,iu3if:iCJmpBufnRioit^iCIntmipvit}iriCIntPtraixiCIntMaxCInoainiriChar#iChar#Chanr jojujp!jCGroupijl_jpBjoIjsPjCFposofjajcrjkyjCFLocktjCFloatljejCFilee4kijojujbjljejCDoublerkCDireknkt#kCDirentv;kCDevhzklUko\kcckkjkCClockakrkCChartkckhkHandlerChari olmomrnmuclyktkeka,lckolu lnltl ByteCountr3lr:laAlyHl#Ol ByteArray#fjlfqlexlrlBufferllmlsltlaltlel BufferStateoldlel BufferModeilsmt m BufferListcImn+mi2ml9m BufferListoPmnWms^m BufferListeuma|mkm ConsoleEventomumnmdmemdmBoundedlmBoolomcmkmbnend nienonnnd%ne,na3nd:nmAnvHnaOnrVn Exceptionnlndsneznfninnnintnenlnyn Exceptionunfnfnenrninnngn BufferModetosoBitsbtdtlsnsprrpsJosoyVon]ocdoekoxrocyoeopotoiooonoAsyncExceptioneorotoiooonofoaoiolpepdp Exceptiongdriqr/paqo;pwBpArrowaOqcqlpmpppzopevpr}pop ArrowZerolpupsp ArrowPlusopnpapdp ArrowMonadopoppq ArrowLoophqo%qi,qc3qe:q ArrowChoicepVqp]qldqykq ArrowApplyyqArray#qeqxqcqeqpqtqiqoqnqArrayExceptionArray#trh rerxrc"re)rp0rt7ri>roErnLrArithExceptiondroprrwrd~rerrrArgOrderersrcrrrArgDescrpre%slrircrartrisv ses Applicativen,sd3sh`sm?soFsdMseTsIOModeagsnnsdusl|ses HandleTypeysAnygntlatr ttsesrsnsastsisvses Alternativeetatdty&te-tx4ti;tsBttItsPt IOErrorTypeAllctrztetptDataRepotntstttrt ConstrRepdtrt#tAddr#stotluuutueusue#ue*uk1uSeekMode:Wu]Ku[]:^u]eu[::]*u+u:u:+::u:*:)u()u[w;wvIv v ProcessHandleProcessHandle__ ()IO Char[] ExitCodeIO ProcessHandleIO aIO ProcessHandleHandleHandleHandle(,,,)IOExitCodeMaybeIO Char[]Char[](,)IOw*zzyyx{xBxxProcessHandle__IOProcessHandle__aProcessHandle__(,)IOProcessHandle__aIO()PtrExitCode  ProcessHandle Word32Char[] HandleMaybe   ProcessHandle__MVaraIOChar[]Maybe Char[][] Char[]Char[](,)[]Char[]Char[](,)[]Maybe |{{{{{{x{]{B{0{%{{{{zzzzzPHANDLEPHANDLEPHANDLE  String FilePathString FilePathStringStringFilePathString StringStringFilePathStringStringkA!~~~j~J~~}}}z}\}4}}||t|withprocesshandle_|withProcessHandle_withprocesshandle|withProcessHandlewithfilepathexception|withFilePathExceptionwithcenvironment}withCEnvironmentwaitforprocessG}waitForProcess translatej} translateterminateprocess}terminateProcess system}system runprocess} runProcess runinteractiveprocess}runInteractiveProcess runinteractivecommand.~runInteractiveCommand runcommandY~ runCommand rawsystemx~ rawSystemprocesshandle__~ProcessHandle__ processhandle~ ProcessHandleprocess~ProcessprocessphandlePHANDLE openhandle0 OpenHandlemkprocesshandleUmkProcessHandle internalsy InternalsgetprocessexitcodegetProcessExitCodecommandtoprocesscommandToProcesscmdCmd closephandle closePHANDLE closedhandle, ClosedHandleg%AR0^8փ~withProcessHandle_withProcessHandle_ ::  ProcessHandle -> '(ProcessHandle__ -> IO ProcessHandle__) -> IO ()I ProcessHandleProcessHandle__IOProcessHandle__IO()withProcessHandlewithProcessHandle ::  ProcessHandle -> ,(ProcessHandle__ -> IO (ProcessHandle__, a)) -> IO az+ ProcessHandleProcessHandle__IO(,)ProcessHandle__aIOawithFilePathExceptionwithFilePathException :: FilePath -> IO a -> IO aFilePathIOaIOawithCEnvironmentwithCEnvironment :: [(String, String)] -> (Ptr () -> IO a) -> IO a҃[](,)StringStringPtr()IOaIOa translate translate :: String -> String4!StringStringProcessHandle__data ProcessHandle__v A handle to a process, which can be used to wait for termination of the process using waitForProcess. None of the process-creation functions in this library wait for termination: they all return a ProcessHandle which may be used to wait for the process later.  ProcessHandle ProcessHandle :: MVar ProcessHandle__ ->  ProcessHandleMVarProcessHandle__ ProcessHandle ProcessHandlenewtype  ProcessHandleZPHANDLEtype PHANDLE = Word32 OpenHandle OpenHandle :: PHANDLE -> ProcessHandle__PHANDLEProcessHandle__mkProcessHandlemkProcessHandle :: PHANDLE -> IO ProcessHandleuPHANDLEIO ProcessHandlecommandToProcesscommandToProcess :: String -> IO (FilePath, String),StringIO(,)FilePathStringjTurns a shell command into a raw command. Usually this involves wrapping it in an invocation of the shell. There's a difference in the signature of commandToProcess between the Windows and Unix versions. On Unix, exec takes a list of strings, and we want to pass our command to binsh as a single argument. On Windows, CreateProcess takes a single string for the command, which is later decomposed by cmd.exe. In this case, we just want to prepend "c:WINDOWSCMD.EXE /c" to our command line. The command-line translation that we normally do for arguments on Windows isn't required (or desirable) here.  closePHANDLE closePHANDLE :: PHANDLE -> IO ()PHANDLEIO() ClosedHandle ClosedHandle :: ExitCode -> ProcessHandle__aExitCodeProcessHandle__waitForProcesswaitForProcess ::  ProcessHandle ->  IO ExitCode ProcessHandleIOExitCodeWaits for the specified process to terminate, and returns its exit code. GHC Note: in order to call waitForProcess without blocking all the other threads in the system, you must compile the program with -threaded. terminateProcessterminateProcess ::  ProcessHandle -> IO ()nR ProcessHandleIO()Attempts to terminate the specified process. This function should not be used under normal circumstances - no guarantees are given regarding how cleanly the process is terminated. To check whether the process has indeed terminated, use getProcessExitCode. On Unix systems, terminateProcess sends the process the SIGKILL signal. On Windows systems, the Win32 TerminateProcess function is called, passing an exit code of 1. systemsystem :: String ->  IO ExitCodezStringIOExitCodeComputation system cmd returns the exit code produced when the operating system processes the command cmd. This computation may fail with
  • PermissionDenied: The process has insufficient privileges to perform the operation.
  • ResourceExhausted: Insufficient resources are available to perform the operation.
  • UnsupportedOperation: The implementation does not support system calls.
On Windows, system is implemented using Windows's native system call, which ignores the SHELL environment variable, and always passes the command to the Windows command interpreter (CMD.EXE or COMMAND.COM), hence Unixy shell tricks will not work.  runProcess runProcess :: FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] ->  Maybe Handle ->  Maybe Handle ->  Maybe Handle -> IO ProcessHandlesFilePath[]StringMaybeFilePathMaybe[](,)StringStringMaybeHandleMaybeHandleMaybeHandleIO ProcessHandle?Runs a raw command, optionally specifying Handles from which to take the stdin, stdout and stderr channels for the new process (otherwise these handles are inherited from the current process). Any Handles passed to runProcess are placed immediately in the closed state. runInteractiveProcess runInteractiveProcess :: FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> *IO (Handle, Handle, Handle, ProcessHandle)-FilePath[]StringMaybeFilePathMaybe[](,)StringStringIO(,,,)HandleHandleHandle ProcessHandleFRuns a raw command, and returns Handles that may be used to communicate with the process via its stdin, stdout and stderr respectively. For example, to start a process and feed a string to its stdin:
(inp,out,err,pid) <- runInteractiveProcess "..."
forkIO (hPutStr inp str)
runInteractiveCommandrunInteractiveCommand :: String -> *IO (Handle, Handle, Handle, ProcessHandle)ɘStringIO(,,,)HandleHandleHandle ProcessHandleRuns a command using the shell, and returns Handles that may be used to communicate with the process via its stdin, stdout, and stderr respectively.  runCommand runCommand :: String -> IO ProcessHandleۙStringIO ProcessHandle Runs a command using the shell.  rawSystem rawSystem :: String -> [String] ->  IO ExitCodeString[]StringIOExitCodeThe computation rawSystem cmd args runs the operating system command cmd 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 system. The return codes and possible failures are the same as for system.  ProcessHandledata  ProcessHandle{getProcessExitCodegetProcessExitCode ::  ProcessHandle -> IO (Maybe ExitCode) ProcessHandleIOMaybeExitCodeThis is a non-blocking version of waitForProcess. If the process is still running, Nothing is returned. If the process has exited, then Just e is returned where e is the exit code of the process. Subsequent calls to getProcessExitStatus always return Just ExitSuccess, regardless of what the original exit code was. processpackage process˞VProcess libraries This package contains libraries for dealing with system processes. Processmodule System.ProcessXOperations for creating and interacting with sub-processes. For a simpler, but less powerful, interface, see the System.Cmd module.  Internalsmodule System.Process. Internals'<Operations for creating and interacting with sub-processes. Cmdmodule System.CmdExecuting an external command. This module provides a simple interface for executing external commands. For a more complex, but more powerful, interface, see the System.Process module. sgSystemCmdSystemProcess InternalsSystemProcessprocess1.0.0.0Ehttp://hackage.haskell.org/packages/archive/process/1.0.0.0/doc/html/Bhttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/process