HOOG:nha  bc d ef g h iklm n o p r s  tu vwxy z7gbf*eh()->VAll5Any BlockReasonBoolCCharCClock{CDevICDoubleCFloatCInoOCIntCIntMaxCIntPtrwCLDoubleCLLongCLongCModeFCOffCPidCPtrdiffnCSChar&CShort CSigAtomicCSizeNCSsizeCTimeCUCharCUIntDCUIntMaxCUIntPtrCULLonglCULong$CUShortCWchar CalendarTimeChanwCharT ClockTimeGComplex< ConsoleEventConstr ConstrRep DataRepDataType Day Double Dynamic E12 E6 Either~ Errnoz Exception^ Fd Fixity Float GeneralCategory HashData IO Id Inserts Inty Int16` Int32G Int64. Int8 IntPtr Integer Lexeme Maybe] Month; NestedAtomically" NoMethodError NonTermination Ordering P PatternMatchFail Permissions QSem QSemN ReadPw ReadPrec^ RecConErrorE RecSelError, RecUpdError STM StableName TVar ThreadId ThreadStatus TimeDiff Timeout Unique Versionp WordW Word16> Word32% Word64 Word8WordPtrZipList[::][]F TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableEqOrdShowReadTypeableOrdEqTypeableShow ExceptionEqShowReadOrdEqShowOrdEqShowEqOrdTypeable Typeable1 Typeable1 Typeable1FunctorMonadTypeableShow ExceptionTypeableShow ExceptionTypeableShow ExceptionFunctorMonad MonadPlusFunctorMonad MonadPlusTypeableTypeableShowReadOrdEqTypeableShow ExceptionMonad MonadPlusMonoidDataIxTypeableShow ExceptionTypeableShow ExceptionTypeableShow ExceptionShowReadIxBoundedEnumOrdEq TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadShowEq PrintfArgDataBitsIx ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableBitsIxEqFunctor Applicative ApplicativeMonadFixShowEqIxBoundedShowReadEnumOrdEq PrintfArgDataStorableShowEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqTypeable ExceptionShowEqEq Typeable2 HasResolution HasResolution ExceptionTypeableShow PrintfArgDataStorableShowReadIxBoundedEnumOrdEqShowShowEqShowEqShowEqReadShowEnumOrdEqTypeable Typeable1ShowOrdEq PrintfArgIsCharDataStorableIx Typeable1ShowReadOrdEq 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 ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqDataStorableIxShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoopCategoryMonoidDataEqOrdIx ByteCountCString CStringLenCWString CWStringLen ClockTickConIndex{DeviceIDt EpochTimelFileIDeFileMode] FileOffsetVFilePathIFinalizerEnvPtr FinalizerPtrIOErrorIPrLimitMicroPicoPrecProcessGroupID ProcessIDRationalReadSZ SampleVar8ShowSString[]Char[]Char[]CharaMVar(,)IntMVaraa[]Char[](,)a[]CharRatioIntegerCPidCPidIntFixedE12FixedE6CLong(,)IntInt IOExceptionaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoCTimeCDevIntCClock(,)PtrCWcharIntPtrCWchar(,)PtrCCharIntPtrCCharCSize(e[da _bZcPdLeIfhEgDh!Ci>jf>k+>l;mF8n?5oW2p.q~.r{*s$tuFv wzlispzlistZipList#eoraitemodeIOModepamped%acm1o8n?aFdM WrappedMonadrjrqoxw WrappedArrowonad WrappedMonadrrow WrappedArrowrdWord#13p6Y8Jp+t2r9WordPtrWord84`Word642wWord326Word16Word#adnesdayDaykWeakWorders i'o.n5Versionn(psWe^reilnstzerruptAsyncExceptionpercaselette rGeneralCategorydYi4q;uBeIUniquee`frlfslzowArithExceptioninedelementArrayExceptionh"i"o!r!u|!vL!y" c/!p. e5 a` rA eH pO TypeRepbg ln eu Typeable1!2 !3 4 5 6 7  Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1o6!n=!TyConaS!rZ!TVar#m!TVar#e!s!d!a!y!Daya!v!e!r!s!a!b!l!e! Traversabled" ClockTimem"t"l%"e,"c3"a:"sA"eH"lO"eV"t]"td"ek"rr"GeneralCategorye"d"l"o"c"a"l"e" TimeLocalei"f"f"TimeDiffr0#u#r #s#d#a #y'#Daye7#a>#dE#b$d$fG$i$k#r#sj#tq#ax#t#u#s# ThreadStatusu#n#n#i#n#g# ThreadStatusi#l#l#e#d$AsyncExceptiond$ThreadId#4$ ThreadId#iN$nU$i\$sc$hj$eq$dx$ ThreadStatusi$e$d$ ThreadStatusl$o$c$k$e$d$ ThreadStatusa*eS)h(o(p't%u?%y%m%b%%o,%l3%Lexemem%n%rP%rW%o^%ge%al%ts%ez%GeneralCategoryd%a%y%DaySumSTa&m&o&r%e[&i%n%g%Stringc)&r&e&p&DataRepo0&n7&s>&tE&rL& ConstrRepfv&pg&STRepSTRefr&a&b&l&e&StorableSTMbt'c!'r&t&e&#&State#r'a 'y'STArrayk('o/'v6'e='rD'fK'lR'oY'w`'AsyncExceptionl{'e'n'p't'r' StablePtra'm'e' StableNamea'c'ep(i'n'g(c(o(m(b(i#(n*(i1(n8(g?(mF(aM(rT(k[(GeneralCategoryGeneralCategorym(e(e(x(c(e(p(t(i(o(n( SomeExceptiono*)u(t(d)o )w)n) ConsoleEventw1)ShowsD)ShowSe)p_)tf)em)mt)b{)e)r)Monthk)f)m)o)d)e)SeekModer)o)m)e)n)d)SeekModem>*t*u*r *d'*a.*y5*DaypE*lL*eS*vZ*aa*rh* SampleVara+.e*i*g*h*t*Eithera,c+l+q+t*u*r*n*i*n*o*r*d+e+r+ArgOrderan+u(+i/+r6+e=+oD+rK+dR+eY+r`+ArgOrderru+g|+ArgDescra+t+i+v+e+s+e+e+k+SeekModect,s.,u+p+d+e+r,r ,o,r, RecUpdErrore5,l<,eC,rJ,rQ,oX,r_, RecSelErroro{,n,e,r,r,o,r, RecConErrorda-l,Realf -w,o,r,l,d, RealWorldl9-r-a -c'-RealFraco@-aG-tN- RealFloatReadm .p-s-w-r-i-t-e-m-o-d-e-IOModeReadSReadPr-e-c-ReadPreco.d.e.IOModet2.LexemeiC.oJ.Ration^.ae.ll.Rationals.e.m.QSemn.QSemNaX1e0i0o0r/t.u.n.c.Lexemer.Ptrew0i/o/cK/d%/u,/c3/t:/ProducteR/sY/s`/g/il/ds/ ProcessIDr/o/u/p/i/d/ProcessGroupIDn0v/a/t/e/u/s/e/GeneralCategoryt0f!0aV0t-0y40p;0eB0 PrintfTyper]0gd0 PrintfArgc0f0i0x0FixityPreco0l0Poolc0o0Picor0m0i1u0t1e 1ArgOrders 1s'1i.1o51n<1sC1 Permissionsr1td1tk1er1ry1n1m1a1t1c1h1f1a1i1l1PatternMatchFaila1g1r1a1p1h2s 2e2p2a2r&2a-2t42o;2rB2GeneralCategoryc5p%4r3t2vr2ey2r2f2l2o2w2ArithExceptionh2e2r2l3nn3p3s2y2m2b2o2l2GeneralCategoryu3n!3c(3t/3u63a=3tD3iK3oR3nY3GeneralCategoryuu3m|3b3e3r3GeneralCategorye3t3t3e3r3GeneralCategoryd3Orde3r3i4n 4g4Orderinge4t14a4d^4iB4oI4nP4OptDescree4sl4cs4rz4OptDescrr4g4ArgDescrn4p4u4n4c4t4u4a4t4i4o4n4GeneralCategoryt5o5b&5e-5r45Monthe7od5uP5mW5Numa7bf7m 7nD6r)6t5v5e5m5b5e5r5Montha5h5i5n5g5Maybes5s5i5g5n6e 6d6GeneralCategorye06p76DataReps6tP6eW6r^6me6il6ns6az6t6i6o6n6NonTerminationp6a6c6i6n6g6m6a6r6k6GeneralCategorye7t7h7o%7d,7e37r:7rA7oH7rO7 NoMethodErrorum7ft7f{7e7r7i7n7g7 BufferModer7g7ArgDescrs7t7e7d7a7t7o7m8i 8c8a8l8l%8y,8NestedAtomicallya:i:oT9u8va8ah8ro8MVar#8MVar#t8a8b8l8e8a9b8y8t8e8a8r8r8a8y8#8MutableByteArray#r!9r(9a/9y69#=9 MutableArray#d):n`9a9d9o9tv9h}9Monthi9d9Monoida9y9Dayd9Monadf :p9l9u9s9 MonadPlusi:x:MonadFixi0:f7:i>:eE:rL:l:sX:y_:mf:bm:ot:l{:GeneralCategorye:t:t:e:r:GeneralCategoryc:r:o:Microri;t#;y:Monthb ;e;Maybeh*;s1;y8;m?;bF;oM;lT;GeneralCategorycp;hw;Montha>er=i<o;gz<s<w;e;r;c;a;s;e;l;e;t;t;e;r;GeneralCategorys<o <f'<p.<r5<e<<cC<iJ<sQ<iX<o_<nf<ArithExceptiono<f<f< ConsoleEventmU=n<e<b =s<e<p<a<r<a<t<o<r<GeneralCategoryu=f=f"=e)=r0=i7=n>=gE= BufferModei\=tc=Limitf=t=x=e=m=e=Lexemet=e=r=n=u=m=b=e=r=GeneralCategoryt>Eithers>t>Lastl2>e9>i@>sG>lN>iU>Kleislia>ur>l>n>s>t>Maybee>Monthy>Monthn>u>a>r>y>MonthdCgBn@o?p~?s?x ?IxcY?s$?t+?r2?i9?n@?gG?IsStringh`?ag?rn?IsCharr?IPrIOe?m?r?e?f?IORefo?d?e?IOModerA@x?c@e @p@t@i@o%@n,@ IOExceptionrH@oO@rV@IOErrortl@ys@pz@e@ IOErrorTypedhBfNBiAt@Int #A1A3A6A8AcjAeApAr@e@p@DataReptArAIntPtrg&AeRAr2Aa9Al@AIntegralrYAIntegeroqAnxAsAtArA ConstrRepInt84AInt642AInt326AInt16Int#tBiBaBlBqBu$Bo+Bt2Be9BGeneralCategoryiUBx\BFixityeoBxvBo}BuBtBoBfBbBoBuBnBdBsBArrayExceptionnBoBrBeBHandlereCnCtCLexemeaCeCp2Cr9Ci@CnGCtNCfUCt\CycCpjCeqC HPrintfTypeaCpCoCvCeCrCfClCoCwCAsyncExceptionnDsChNDrCeCsDo DlDuDt"Di)Do0Dn7D HasResolutiontUDa\DbcDljDeqD HashTabledDlDeDHandlepDrDHandleroDsDnD HandlePosneDnDeEr EaElEcEa%Et,Ee3Eg:EoAErHEyOEGeneralCategorydIeIiGlGoSFrEuEnEcEpEtErEFunPtrtEoErEFunctoraFiEdEaEyFDaycFtFi#Fo*Fn1Fa8Fl?F FractionallFr_FeFmkFarFtyFGeneralCategoryiFgFnFpFtFrF ForeignPtrdFaFbFlFeFFoldableoGaGtGcbGiBGr'Ge.Gp5GDataRepnIGgPGFloatingoiGnpGswGt~GrG ConstrReplHnHrGxGeGiGtGyGFixitydGFixedsGtGFirstaHlHiRHq!Hu(Ho/Ht6He=HGeneralCategoryzYHe`HrgHeHpsHtzHrH FinalizerPtrnHvHpHtHrHFinalizerEnvPtreHiuImNIoIpHaHtHhIFilePathfIf%Is,Ie3It:I FileOffsetoUId\IecIFileModed|IFileIDbIrIuIaIrIyIMonthFd 1L6LiLnLoKpKqKrNKxIcKiJtJcJeJf]Js%Ju,Jc3Jc:JeAJsHJsOJExitCodeadJikJlrJuyJrJeJExitCodexJcJeJpJtJiJoJnJ ExceptionoJdJeJExitCodee KpKtKiKo&Kn-K Exception ExceptionrUKnKoaKrhKcoKavKl}KlK ErrorCalloKErrnoEqoKcKhKtKiKmKeK EpochTimefLLexemecKLd6Lu!Lm(LEnumo=LEndolRLoYLs`LigLnnLguLm|LaLrLkLGeneralCategorytLhLeLrLEitherE62LE12aOeNNiMoMuMyMnMalMe%Mx,Mc3Me:MpAMtHMiOMoVMn]M ExceptionmsMizMcMDynamicaMlMDualuMwMnMDownbMlMeMDoublevMiNd NeNbNyNz%Ne,Nr3No:NArithExceptionaOcNfNnNviNipNcwNe~NiNdNDeviceIDoNrNmNaNlNArithExceptionaNuNlNtNHandlere^Oi OmOaOlOn&Ou-Om4Ob;OeBOrIOGeneralCategorymeOblOesOrzOMonthdOlOoOcOkODeadlocks=PtOyODayaODatarPtOyOpPe PDataTypee%Pp,PDataRephDPpKPuRPnYPc`PtgPunPauPt|PiPoPnPGeneralCategorya#ZcYdYfYhXiqXj=XlVmVoTpiTs+StSuQwPc\QsPtQr QiQnQg"QCWStringl9Qe@QnGQ CWStringLenhcQajQrqQCWcharcRi{Rl+RrQsQhQoQrQtQCUShortrQeQnQcQyQsQyQmRbRoRlRGeneralCategorylURo7Rn>RgERCULongo\RncRgjRCULLongnRtRCUIntmRpRtRrRCUIntPtraRxRCUIntMaxhRaRrRCUChariSmSeSCTimecDThTiSsStFSrMSiTSn[SgbSCStringlxSeSnS CStringLeniSzSeSCSsizegSzSeSCSizeaStSoSmSiTc T CSigAtomico&Tr-Tt4TCShorthKTaRTrYTCSChariTtuTr|TdTiTfTfTCPtrdiffdTCPidfVmwVnTiIVnUs'UtTrToTlTGeneralCategorycU ConsoleEvento}Ut3UConstrGUConstrr\UecUpjU ConstrReplUeUeUvUeUnUtU ConsoleEventeUcUtUoUrUpUuUnUcVt VuVaVtVi&Vo-Vn4VGeneralCategorynPVdWVe^VxeVConIndexp~VlVeVxVComplexfVCOffoVdVeVCModedXlWoVcWnxWsVeW ConsoleEventpWu$Wn+Wc2Wt9Wu@WaGWtNWiUWo\WncWGeneralCategorygWCLongkWtWiWcWmWeW ClockTimekW ClockTickoWnWgWCLLongoXuXbXl$Xe+XCLDoublemDXpKXbRXuYXf`XCJmpBufnxXoXtXCIntmXpXtXrXCIntPtraXxXCIntMaxCInoaXn YrXCharChanijYlEYp(Yo/Ys6YCFposoLYaSYtZYCFloatlqYexYCFileeYoYuYbYlYeYCDoublevYCDevhZlYoYcYkYCClocka ZrZCCharl}Zt/ZciZe;ZgBZoIZrPZyWZCategoryhpZHandlereZnZdZaZrZtZiZmZeZ CalendarTimei^l[o[r[u6[yZtZe[c[o[u[n[t#[ ByteCountf=[fD[eK[rR[mY[o`[dg[en[ BufferModee[a[k[ ConsoleEvento[u[n[d[e[d[Boundedl[Boolo[c\k \b^eU\r\e$\a+\s2\o9\n@\ BlockReasond\\i;^oh\no\b]d]e]]f]m\o\s\t\m\ BlockReasont\h\e\r\ BlockReasonv\a\r\ BlockReasono ]r]e]i"]g)]n0]c7]a>]lE]lL] BlockReasonxd]ck]er]py]t]i]o]n] BlockReasone]a]d]m]v]a]r]BlockedOnDeadMVarl]a^c^k^h^o^l#^e*^ BlockReasonnB^dI^eP^fW^i^^ne^il^ts^ez^l^y^BlockedIndefinitelyu^f^f^e^r^i^n^g^ BufferModet^s^Bitsbddkdlcncpbr8`sZ_u3_g:_uA_sH_tO_Months_yf_nm_ct_e{_x_c_e_p_t_i_o_n_AsyncExceptione_r_t_i_o_n_f_a`i `l`e`d`AssertionFailedg~bibrI`aaoU`w\`Arrowaiac1al am`p`z`e`r`o` ArrowZerol`u`s` ArrowPluso`n`a`d` ArrowMonadoaoapa ArrowLooph8ao?aiFacMaeTa ArrowChoiceppapwal~aya ArrowApplyyaArray# beaxacaeapataiaoanaArrayExceptionArray#t bh'be.bx5bc Booloo PermissionsBoolsetPermissionssetPermissions :: FilePath ->  Permissions -> IO ()ooFilePath PermissionsIO()%The setPermissions operation sets the permissions for the file or directory. The operation may fail with: setCurrentDirectorysetCurrentDirectory :: FilePath -> IO ()Qq:qFilePathIO()If the operating system has a notion of current directories, setCurrentDirectory dir changes the current directory of the calling process to dir. The operation may fail with:  searchable searchable ::  Permissions -> BoolJu4u PermissionsBool renameFile renameFile :: FilePath -> FilePath -> IO ()uuFilePathFilePathIO()renameFile old new changes the name of an existing file system object from old to new. If the new object already exists, it is atomically replaced by the old object. Neither path may refer to an existing directory. A conformant implementation need not support renaming files in all situations (e.g. renaming across different physical devices), but the constraints must be documented. The operation may fail with: renameDirectoryrenameDirectory :: FilePath -> FilePath -> IO ()|{FilePathFilePathIO()renameDirectory old new changes the name of an existing directory from old to new. If the new directory already exists, it is atomically replaced by the old directory. If the new directory is neither the old directory nor an alias of the old directory, it is removed as if by removeDirectory. A conformant implementation need not support renaming directories in all situations (e.g. renaming to an existing directory, or across different physical devices), but the constraints must be documented. On Win32 platforms, renameDirectory fails if the new directory already exists. The operation may fail with:  removeFile removeFile :: FilePath -> IO ()C,FilePathIO()removeFile file removes the directory entry for an existing file file, where file is not itself a directory. The implementation may specify additional constraints which must be satisfied before a file can be removed (e.g. the file may not be in use by other processes). The operation may fail with: removeDirectoryRecursiveremoveDirectoryRecursive :: FilePath -> IO ()FilePathIO()removeDirectoryRecursive dir removes an existing directory dir together with its content and all subdirectories. Be careful, if the directory contains symlinks, the function will follow them. removeDirectoryremoveDirectory :: FilePath -> IO ()FilePathIO()8removeDirectory dir removes an existing directory dir. The implementation may specify additional constraints which must be satisfied before a directory can be removed (e.g. the directory has to be empty, or may not be in use by other processes). It is not legal for an implementation to partially remove a directory unless the entire directory is removed. A conformant implementation need not support directory removal in all situations (e.g. removal of the root directory). The operation may fail with: readablereadable ::  Permissions -> Bool PermissionsBool Permissions  Permissions :: Bool -> Bool -> Bool -> Bool ->  PermissionsJ"BoolBoolBoolBool Permissions Permissionsdata  PermissionsmakeRelativeToCurrentDirectorymakeRelativeToCurrentDirectory :: FilePath ->  IO FilePath!FilePathIOFilePath+makeRelative the current directory. getUserDocumentsDirectorygetUserDocumentsDirectory ::  IO FilePathIOFilePathReturns the current user's document directory. The directory returned is expected to be writable by the current user, but note that it isn't generally considered good practice to store application-specific data here; use getAppUserDataDirectory instead. On Unix, getUserDocumentsDirectory returns the value of the HOME environment variable. On Windows, the system is queried for a suitable path; a typical path might be C:/Documents and Settings/user/My Documents. The operation may fail with: getTemporaryDirectorygetTemporaryDirectory ::  IO FilePath IOFilePathReturns the current directory for temporary files. On Unix, getTemporaryDirectory returns the value of the TMPDIR environment variable or "/tmp" if the variable isn't defined. On Windows, the function checks for the existence of environment variables in the following order and uses the first path found: The operation may fail with: The function doesn't verify whether the path exists. getPermissionsgetPermissions :: FilePath -> IO Permissions<FilePathIO Permissions+The getPermissions operation returns the permissions for the file or directory. The operation may fail with: getModificationTimegetModificationTime :: FilePath ->  IO ClockTimeҘFilePathIO ClockTimeLThe getModificationTime operation returns the clock time at which the file or directory was last modified. The operation may fail with: getHomeDirectorygetHomeDirectory ::  IO FilePathIOFilePathReturns the current user's home directory. The directory returned is expected to be writable by the current user, but note that it isn't generally considered good practice to store application-specific data here; use getAppUserDataDirectory instead. On Unix, getHomeDirectory returns the value of the HOME environment variable. On Windows, the system is queried for a suitable path; a typical path might be C:Documents And Settingsuser. The operation may fail with: getDirectoryContentsgetDirectoryContents :: FilePath ->  IO [FilePath]ޝFilePathIO[]FilePath(getDirectoryContents dir returns a list of all entries in dir. The operation may fail with: getCurrentDirectorygetCurrentDirectory ::  IO FilePathIOFilePathIf the operating system has a notion of current directories, getCurrentDirectory returns an absolute path to the current directory of the calling process. The operation may fail with: getAppUserDataDirectorygetAppUserDataDirectory :: String ->  IO FilePathStringIOFilePathReturns the pathname of a directory in which application-specific data for the current user can be stored. The result of getAppUserDataDirectory for a given application is specific to the current user. The argument should be the name of the application, which will be used to construct the pathname (so avoid using unusual characters that might result in an invalid pathname). Note: the directory may not actually exist, and may need to be created first. It is expected that the parent directory exists and is writable. On Unix, this function returns $HOME/.appName. On Windows, a typical path might be
C:/Documents And Settings/user/Application Data/appName
The operation may fail with: findExecutablefindExecutable :: String -> IO (Maybe FilePath)`<StringIOMaybeFilePathGiven an executable file name, searches for such file in the directories listed in system PATH. The returned value is the path to the found executable or Nothing if there isn't such executable. For example (findExecutable "ghc") gives you the path to GHC.  executable executable ::  Permissions -> Boolʪ PermissionsBool doesFileExist doesFileExist :: FilePath -> IO Bool=$FilePathIOBoolThe operation doesFileExist returns True if the argument file exists and is not a directory, and False otherwise. doesDirectoryExistdoesDirectoryExist :: FilePath -> IO BoolA(FilePathIOBoolThe operation doesDirectoryExist returns True if the argument file exists and is a directory, and False otherwise. createDirectoryIfMissingcreateDirectoryIfMissing :: Bool -> FilePath -> IO ()dGBoolFilePathIO()createDirectoryIfMissing parents dir creates a new directory dir if it doesn't exist. If the first argument is True the function will also create all parent directories if they are missing. createDirectorycreateDirectory :: FilePath -> IO ()FilePathIO(),createDirectory dir creates a new directory dir which is initially empty, or as near to empty as the operating system allows. The operation may fail with: copyFilecopyFile :: FilePath -> FilePath -> IO ()dCFilePathFilePathIO()(copyFile old new copies the existing file from old to new. If the new file already exists, it is atomically replaced by the old file. Neither path may refer to an existing directory. The permissions of old are copied to new, if possible. canonicalizePathcanonicalizePath :: FilePath ->  IO FilePath FilePathIOFilePathtGiven path referring to a file or directory, returns a canonicalized path, with the intent that two paths referring to the same file/directory will map to the same canonicalized path. Note that it is impossible to guarantee that the implication (same file/dir <=> same canonicalizedPath) holds in either direction: this function can make only a best-effort attempt. directorypackage  directoryZlibrary for directory handling This package provides a library for handling directories.  Directorymodule System. DirectoryG8System-independent interface to directory manipulation. System Directory directory1.0.0.3Ghttp://hackage.haskell.org/packages/archive/directory/1.0.0.3/doc/html/Dhttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/directory