úÎ'D!1     None246=add a trailing slash to ensure the path indicates a directoryVbugfix older version of canonicalizePath (system-fileio <= 0.3.7) loses trailing slash ! !None24BT[The pattern entity holds a name and pattern that is compiled when the rules are evaluated,TODO maybe change this to have the timestamp"Set the # field$Set the modify field%Set the delete field& Set both the # and ' field to the same value( Set the name)*+,-#'."$%&(/0123456)*+,-#'."$%&(/01234)*+,-#'."$%&(/0123456"$%&(NoneT74A sum type for the various issues that can be logged8"logged every time an rule is fired9#logged every time an event is fired:%Configuration to run the file watcher;A logger for the issues <The directories to watch=config 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 eventsAThe action to run on Add eventsB"The action to run on Delete eventsC*The test function to determine if a event D should get firedD7The actions that are run when file events are triggeredE!Retrieve the filePath of an EventFRetrieve the time of an EventG1Run the Rule action associated with the an event H/Test to see if the rule should fire and fire itI4Start watching a directory, and run the rules on it.J2Setup all of the directory watches using the rules789:K;<=LM>?@ABCDNEFGHIJOPQR789:K;<=LM>?@ABCDNEFGHIJ798:K;<=LM>?@ABCDNEFGHIJOPQRNone24BTSet the add fieldSet the modify fieldSet the delete field  Set both the add and S field to the same value  Set the nameTUVWXY ZTUVWXY TUVWXY Z  None[\][\][\]NoneT^A logger for the issues _The directories to watch`Debounce configurationa poll intervalbconfig for the file watchcdefghi^_jk`ablmnopqrstuvcdefghi^_jk`ablmnopqrstu cfedg hi^_jk`ablmponqrstuvNone  w      !"#$%&'()*+,-./0123456789:;.<+*0=>?@ABCD8EEFGHIJKL+ MNOPQRSTUV:WXYZ[\]^^9_`abcdefghijkltwitch-0.1.0.0Twitch Twitch.Path Twitch.RuleTwitch.InternalRuleTwitch.Internal Twitch.Run Twitch.MainRule RuleAction PatternTextNameDepDepM|+|%|-|>|#add'modify'delete' addModifyrun defaultMainaddTrailingSlashcanonicalizePathConvertFilePathfpgetDirectoryContentsPathfileDirContents findAllFilesfindImmediateFilesfindImmediateDirs findAllDirs findFilesfindDirscanonicalizeDirPath!$fConvertFilePathFilePathFilePath$fConvertFilePath[][]$fConvertFilePath[]FilePath$fConvertFilePathFilePath[]addmodify RuleIssuePatternCompliationFailednamepatterndeletename'compilePattern$fIsStringRule $fDefaultRuleIssue IRuleFiredIEventConfiglog dirsToWatch watchConfigfileTestFileTestActionfilePathtimefireRuletestAndFireRulesetupRuleForDir setupRules InternalRuletoInternalRule$fDefaultConfig $fShowConfig$fShowInternalRule$fDefaultInternalRule mtl-2.1.3.1Control.Monad.State.ClassunDepMrunDeprunDepWithStateaddRule modHeadRule$fIsStringDepM runWithConfigdepToRulesWithCurrentDir depToRuleslogFiledebounceAmount pollInterval usePolling DebounceType NoDebounceDebounceDebounceDefaultOptionsrecurseThroughDirectoriesdebounce currentDir LoggerTypeNoLogger LogToFile LogToStdout concatMapMtoLoggerpOptionstoDBoptionsToConfig$fDefaultOptions