úÎk%f$      !"#Safe357$=add a trailing slash to ensure the path indicates a directory%Vbugfix older version of canonicalizePath (system-fileio <= 0.3.7) loses trailing slash &'()*+,-$.%/,-.%/ &'()*+,-$.%/Safe2An action to be performed in response to an event.9A predicate used to determine whether to act on an event.0jData "payload" passed to event handlers to enable debouncing. This value is automatically derived from a • value. A value of Just DebounceData results in debouncing according to the given epsilon and IOEvent. A value of Nothing results in no debouncing.1ÈDebouncePayload contents. Contains epsilon value for debouncing near-simultaneous events and an IORef of the latest Event. Difference in arrival time is measured according to Event value timestamps.wThis specifies whether multiple events from the same file should be collapsed together, and how close is close enough.tThis is performed by ignoring any event that occurs to the same file until the specified time interval has elapsed.®Note that the current debouncing logic may fail to report certain changes to a file, potentially leaving your program in a state that is not consistent with the filesystem.VMake sure that if you are using this feature, all changes you make as a result of an  4 notification are both non-essential and idempotent.Fperform debouncing based on the default time interval of 1 millisecond7perform debouncing based on the specified time intervaldo not perform debouncingWatch configurationDebounce configuration 2Polling interval if polling is used (microseconds) mForce use of polling, even if a more effective method may be available. This is mostly for testing purposes. ÿ A file event reported by a file watcher. Each event contains the canonical path for the file and a timestamp guaranteed to be after the event occurred (timestamps represent current time when FSEvents receives it from the OS and/or platform-specific Haskell modules).8Helper for extracting the path associated with an event.8Helper for extracting the time associated with an event.2Predicate to always act.0134 20134 2 0134  2Safe 5yA typeclass that imposes structure on watch managers capable of listening for events, or simulated listening for events.6$Initialize a file listener instance.7oKill a file listener instance. This will immediately stop acting on events for all directories being watched.8ÿListen for file events associated with the immediate contents of a directory. Listening for events associated with immediate contents of a directory will only report events associated with files within the specified directory, and not files within its subdirectories.9ïListen for file events associated with all the contents of a directory. Listening for events associated with all the contents of a directory will report events associated with files within the specified directory and its subdirectories.:Does this manager use polling?/An action that cancels a watching/listening job;wThe default maximum difference (exclusive, in seconds) for two events to be considered as occuring "at the same time".<7The default event that provides a basis for comparison.=ûA predicate indicating whether two events may be considered "the same event". This predicate is applied to the most recent dispatched event and the current event after the client-specified ActionPredicate is applied, before the event is dispatched.>GProduces a fresh data payload used for debouncing events in a handler. 56^Just an initialized file listener, or Nothing if this file listener cannot be supported.789:;<=> 56789:;=>56789:;<=>Safe+ ?@ABCDEFG56789:A?@ABCDEFGNoneHIJKLMNOPQRSTUVWXYZ[\]^ 56789:HIYHIJKLMNOPQRSTUVWXYZ[\]^None;IN =Watch manager. You need one in order to create watching jobs.Default configuration;Debouncing is enabled with a time interval of 1 millisecondPolling is disabled)The polling interval defaults to 1 secondlPerform an IO action with a WatchManager in place. Tear down the WatchManager after the action is complete.®Start a file watch manager. Directories can only be watched when they are managed by a started watch watch manager. When finished watching. you must release resources via (. It is preferrable if possible to use  to handle this automatically.rStop a file watch manager. Stopping a watch manager will immediately stop watching for files and free resources.Like , but configurableLike , but configurableDoes this manager use polling?óWatch the immediate contents of a directory by streaming events to a Chan. Watching the immediate contents of a directory will only report events associated with files within the specified directory, and not files within its subdirectories.ÏWatch all the contents of a directory by streaming events to a Chan. Watching all the contents of a directory will report events associated with files within the specified directory and its subdirectories.ÿJWatch the immediate contents of a directory by committing an Action for each event. Watching the immediate contents of a directory will only report events associated with files within the specified directory, and not files within its subdirectories. No two events pertaining to the same FilePath will be executed concurrently.ÿ&Watch all the contents of a directory by committing an Action for each event. Watching all the contents of a directory will report events associated with files within the specified directory and its subdirectories. No two events pertaining to the same FilePath will be executed concurrently._`a    _`aNone+In the given directory tree, watch for any   and  events (but ignore 1 events) for files with the given file extension ZIn the given directory tree, watch for any events for files with the given file extension!Turn a b callback into an   callback that ignores the   type and timestamp"Turn a b predicate into an   predicate that accepts only   and  event types#Turn a b predicate into an  ( predicate that accepts any event typesDirectory to watch extensionaction to run on file Directory to watch extensionaction to run on file!"# !"# !#" !"#c        !"#$%&'()*+,-./01234567879:;<=>?@ABCDDEFGHIJKLLMNNOOPQRSTUHVWXYZ[\]^_`abcdfsnot_3cMNeXETlEIEnet0qH2icHSystem.FSNotifySystem.FSNotify.DevelSystem.FSNotify.PathSystem.FSNotify.TypesSystem.FSNotify.ListenerSystem.FSNotify.LinuxSystem.FSNotify.PollingActionActionPredicateDebounceDebounceDefault NoDebounce WatchConfig confDebounceconfPollIntervalconfUsePolling EventChannelEventAddedModifiedRemoved eventPath eventTime StopListening WatchManager defaultConfig withManager startManager stopManagerwithManagerConfstartManagerConfisPollingManager watchDirChan watchTreeChanwatchDir watchTree treeExtExists treeExtAny doAllEvents existsEvents allEventsaddTrailingSlashcanonicalizePathgetDirectoryContentsPathfileDirContents findAllFilesfindImmediateFilesfindImmediateDirs findAllDirs findFilesfindDirscanonicalizeDirPathhasThisExtensionDebouncePayload DebounceDataactIOEvent FileListener initSession killSessionlistenlistenRecursive usesPollingepsilonDefault eventDefaultdebouncenewDebouncePayloadEventVarietyMismatchException NativeManagerfsnEventhandleInoEvent handleEvent varieties$fFileListenerINotify($fExceptionEventVarietyMismatchException PollManagerWatchMap WatchDataWatchKey EventType AddedEvent ModifiedEvent RemovedEvent generateEventgenerateEvents pathModMap pathModMap'pollPathcreatePollManagerkillWatchingThreadkillAndUnregistergetModificationTime fromEpoch$fFileListenerPollManager threadChan readEventsbaseGHC.IOFilePath