A library for matching files using patterns such as @\"src\/**\/*.png\"@ for all @.png@ files
recursively under the @src@ directory. Features:
* All matching is /O(n)/.
* See "System.FilePattern" and @?==@ simple matching and semantics.
* Use @match@ and @substitute@ to extract suitable
strings from the @*@ and @**@ matches, and substitute them back into other patterns.
* Use @step@ and @matchMany@ to perform bulk matching
of many patterns against many paths simultaneously.
* Use "System.FilePattern.Directory" to perform optimised directory traverals using patterns.
Originally taken from the <https://hackage.haskell.org/package/shake Shake library>.