úÎ63&      7An abstract data type representing a compiled pattern. The ( instance is essentially the inverse of compile. Though it may & not return exactly what was given to compile it will return code which  produces the same . Note that the 9 instance cannot tell you whether two patterns behave in 5 the same way; only whether they compile to the same . For instance,  compile "x" and compile "[x]" may or may not compare equal,  though a match0 will behave the exact same way no matter which   is used.  Matches the given  against the given   , returning !  if the pattern matches and " otherwise. #$% &'()Matches each given # against the contents of the given  ,  recursively. The result pair'.s first component contains the matched paths,  grouped for each given *, and the second contains all paths which  were not matched by any .  If multiple s match a single  , that path will be included  in multiple groups. )This function is different from a simple * over all the contents of M the directory: the matching is performed relative to the directory, so that % for instance the following is true:  I fmap (head.fst) (globDir [compile "*"] dir) == getDirectoryContents dir If dir is "foo" the pattern should be "foo/*" to get the same  results with a plain *. LAny results deeper than in the given directory are enumerated lazily, using  unsafeInterleaveIO. +,-./01200Like  , but calls 3 if an error results. ?Compiles a glob pattern from its textual representation into a  & object, giving an error message in a 4 if the pattern is erroneous. KFor the most part, a character matches itself. Recognized operators are as  follows:  ?4 Matches any character except path separators. *? Matches any number of characters except path separators, ( including the empty string. [..]C Matches any of the enclosed characters. Ranges of characters can < be specified by separating the endpoints with a '-'. '-' or ']' N can be matched by including them as the first character(s) in the  list. [^..] or [!..] Like [..], but matches any character not listed. <m-n>D Matches any integer in the range m to n, inclusive. The range may 8 be open-ended by leaving out either number: "<->", for + instance, matches any integer. **/A Matches any number of characters, including path separators, ( excluding the empty string. %Note that path separators (typically '/' ) have to be matched explicitly  or using the **/7 pattern. In addition, extension separators (typically  '.'C) have to be matched explicitly at the beginning of the pattern or  after any path separator. JIf a system supports multiple path separators, any one of them will match ( any of them. For instance, on Windows, '/' will match itself as well as  '\'. Erroneous patterns include:  An empty [] or [^] or [!]  A [ or < without a matching ] or >  A malformed <>*: e.g. nonnumeric characters or no hyphen 5678559      !"#$%&'()*+,-.,-/0123456789:;<=>?@ABCDEFGHIGlob-0.2System.FilePath.GlobSystem.FilePath.Glob.UtilsSystem.FilePath.Glob.BaseSystem.FilePath.Glob.MatchSystem.FilePath.Glob.DirectorySystem.FilePath.Glob.OptimizeSystem.FilePath.Glob.CompilePatternmatchglobDircompile tryCompileinRangeoverlap addToRange increasingSeqisLeftfromLeftdropLeadingZeroes pathPartsgetRecursiveContents partitionM partitionDLnubOrdbaseGHC.ShowShow GHC.ClassesEq unPatternToken LongLiteral AnyDirectoryAnyNonPathSeparator OpenRange CharRangeNonPathSeparator PathSeparator ExtSeparatorLiteralliftPGHC.IOFilePathghc-primGHC.BoolTrueFalsebegMatchmatch' inOpenRange TypedPatternAnyDirDirAnyGHC.ListfilterglobDir'matchTypedAndGo didn'tMatchseparate unseparateoptimizeoptimizeCharRange sortCharRangeGHC.Errerror Data.EitherLefttokenize openRange openRangeNum charRange