úÎVOÕ?      !"#$%&'()*+,-./0123456789:;<=>None246?=add a trailing slash to ensure the path indicates a directory@Vbugfix older version of canonicalizePath (system-fileio <= 0.3.7) loses trailing slashABCDEFGHIJ?K@LMNOBHIJK@ABCDEFGHIJ?K@LMNONone24BTP[The pattern entity holds a name and pattern that is compiled when the rules are evaluatedQ,TODO maybe change this to have the timestampRSet the S field ex. "doodle.md |+ ringBell "TSet the modify fieldUSet the delete fieldV Set both the S and W field to the same valueX Set the nameYZP[\]SW^Q_`RTUVXabcdefghYZP[\]SW^Q_`RTUVXabcdefYZP[\]SW^Q_`RTUVXabcdefghRTUVXNoneT4A sum type for the various issues that can be logged"logged every time an rule is fired#logged every time an event is fired%Configuration to run the file watcherA logger for the issues The directories to watchconfig for the file watcher A name for debugging mostly 5The test to determine if the rule actions should fire "The action to run on Modify events The action to run on Add events"The action to run on Delete events*The test function to determine if a event  should get fired7The actions that are run when file events are triggered!Retrieve the filePath of an EventRetrieve the time of an Event1Run the Rule action associated with the an event /Test to see if the rule should fire and fire it4Start watching a directory, and run the rules on it.2Setup all of the directory watches using the rules    None24BT GThis is the key type of the package, it is where rules are accumulated.A polymorphic %. Exported for completeness, ignore. Add a 'add' callback ex. "*.png" |+ addToManifestAdd a 'modify' callback ex. /"*.c" |% [s|gcc -o$directory$basename.o $path|] Add a 'delete' callback ex. /"*.c" |- [s|gcc -o$directory$basename.o $path|]!CAdd the same callback for the 'add' and the 'modify' events. ex. #"*.md" |> [s|pandoc -t html $path|]Defined as: x ! f = x  f  f"xSet the name of a rule. Useful for debugging when logging is enabled. Rules names default to the glob pattern. ex. 9"*.md" |> [s|pandoc -t html $path|] |# "markdown to html"#Add a 'add' callback ex. add addToManifest "*.png"$Add a 'modify' callback ex. 0mod [s|gcc -o$directory$basename.o $path|] "*.c"%Add a 'delete' callback ex. 3delete [s|gcc -o$directory$basename.o $path|] "*.c"&CAdd the same callback for the 'add' and the 'modify' events. ex. +addModify [s|pandoc -t html $path|] "*.md" 'xSet the name of a rule. Useful for debugging when logging is enabled. Rules names default to the glob pattern. ex. Dname "markdown to html" $ addModify [s|pandoc -t html $path|] "*.md"ijklmn !"#$%&'oijklmn !"#$%&'ijklmn !"#$%&'o !"None()pq()pq()pqNoneT 0\The logger type. This cooresponds to the --log or -l argument. The valid options are  LogToStdout,  LogToFile, and NoLogger If  LogToFile a file can provide with the 1 field.1/The file to log to This is only used if the 0 field is set to  LogToFile6. This cooresponds to the --log-file or -f argument2SThe directories to watch. This cooresponds to the --directories and -d argument3<If true, main will recurse throug all subdirectories of the 2 field. Otherwise the 2V will be used literally. By default this is empty and the currentDirectory is used.4This corresponds to the debounce type used in the fsnotify library The argument for default main is --debounce or -b . Valid options are DebounceDefault, Debounce,  NoDebounce If Debounce? is used then a debounce amount must be specified with the 555The amount to debounce. This is only meaningful when 4 is set to ,<. It cooresponds to the --debounce-amount or -a argument6[poll interval if polling is used. This cooresponds to the --poll-interval or -i argument7[If true polling is used instead of events. This cooresponds to the --poll or -p argument8nThe current directory to append to the glob patterns. If Nothing then the value is whatever is returned by r9 This cooresponds to the --current-dir or -c arguments=”Simplest way to create a file watcher app. Set your main equal to defaultMain and you are good to go. See the module documentation for examples.#The command line is parsed to make .T value. For more information on the arguments that can be passed see the doc for .P and the run the executable made with defaultMain with the --help argument. >[A main file that uses manually supplied options instead of parsing the passed in arguments.*+,-./0123456789:;<stuvw=>x*+,-./0123456789:;<stuvw=> *-,+. /0123456789<;:stuvw=>xNone, !"#$%&'()*+,-./0123456789:;<=>,= !"#$%&'*-,+9<;:./012345678>()y       !"#$%&'()*+,-./00123456789:;<=>?@ABCDEFGHIJKLMNOPQR$%&'(STQUVWXYZ[\]^_#`abcdefghijklmnopqtwitch-0.1.4.0Twitch.InternalRuleTwitch Twitch.Path Twitch.RuleTwitch.Internal Twitch.Run Twitch.MainIssue IRuleFiredIEventConfigloggerdirs watchConfig InternalRulenamefileTestmodifyadddeleteFileTestActiontoInternalRulefilePathtimefireRuletestAndFireRulesetupRuleForDir setupRules$fDefaultConfig $fShowConfig$fShowInternalRule$fDefaultInternalRuleDepDepM|+|%|-|>|# addModifyrun runWithConfig DebounceType NoDebounceDebounceDebounceDefaultOptionsloglogFile dirsToWatchrecurseThroughDirectoriesdebouncedebounceAmount pollInterval usePolling currentDir LoggerTypeNoLogger LogToFile LogToStdout defaultMaindefaultMainWithOptionsaddTrailingSlashcanonicalizePathConvertFilePathfpgetDirectoryContentsPathfileDirContents findAllFilesfindImmediateFilesfindImmediateDirs findAllDirs findFilesfindDirscanonicalizeDirPath!$fConvertFilePathFilePathFilePath$fConvertFilePath[][]$fConvertFilePath[]FilePath$fConvertFilePathFilePath[]Rule RuleAction RuleIssuePatternCompliationFailedpattern PatternTextNameaddFmodifyFdeleteFnameF addModifyFcompilePattern$fIsStringRule $fDefaultRuleunDepMrunDeprunDepWithStateaddRule modHeadRule$fIsStringDepMdepToRulesWithCurrentDir depToRulesdirectory-1.2.1.0System.DirectorygetCurrentDirectory concatMapMtoLoggerpOptionstoDBoptionsToConfig$fDefaultOptions