p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ AFilter all elements matching fileListenInfoInclude patterns and > remove all elements matching exclude patterns to the result. oIf no fileListenInfoInclude pattern is given, all elements are accepted minus those matching exclude patterns. `If no exclude pattern is given, all elements matching fileListenInfoInclude patterns are taken. Initial list to filter exclude patterns (regex) 'fileListenInfoInclude patterns (regex) lList with all elements matching fileListenInfoInclude patterns minus all elements matching exclude patterns uRepresents an action of shaker ERepresents the mapping between the command-line input and the action FRepresents the mapping beetween an action and the function to execute  /Agregate a FilePath with its modification time .Represents fileListenInfoDirectory to listen 1location of the listened fileListenInfoDirectory fileListenInfoIgnore patterns fileListenInfoInclude patterns !)Configuration of the continuous listener "#The files to listen $&Delay beetween 2 check in microsecond %0Configuration flags to pass to the ghc compiler &'0Source fileListenInfoDirectory of haskell files ( Destination of .o and .hi files )dA transform fonction wich will takes the DynFlags of the current ghc session and change some values *=The command line to pass options to pass to the ghc compiler +,List of files or list of modules to compile ,-./0122Represents the global configuration of the system 3456789:;<=>?@ABC+Command agregate a duration with an action DEDShakerAction represents the differents actions realisable by shaker FDelete generated G Exit shaker HNothing to execute IExecute a command JDisplay the help K0Display an error when invalid action is inputed LMExecute both quickcheck and hunit using test framework on recompiled modules MMExecute both quickcheck and hunit using test framework on recompiled modules NMExecute both quickcheck and hunit using test framework with module filtering O7Execute both quickcheck and hunit using test framework P Compile all hs sources with ghc QCompile sources with ghc RSTUTToken is used to manage the token between action executor and command-line listener V2The input mvar is used to push the parsed command W7Action represents the differents action with arguments XYZ+Duration define the life span of an action [OExecute the action when a source file modification is done until it is stopped \)Execute the action and give back control ]%Agregate all information of listener ^_Files found in the last check `/Differences between last and before last check a!List of all forks id initialized bcd*Environnement for the project compilation 9 This environnement can change depending on the compile  action called e@MVar used to pass action to the fileListenInfoDirectory scanner f6MVar used to store modifiedFiles since the last check g'MVar used to store currentFiles listed hijk4Environnement containing the project configuration. # It is generated at startup and won' t change lmnodefault dynamics flags 7 the sources are expected to be in src as described in  Ahttp://www.haskell.org/haskellwiki/structure_of_a_haskell_project > the result of compilation (.o and .hi) are placed in the dist/ shakerTarget J there is no main linkage by default to allow faster compilation feedback p$Default haskell file pattern : *.hs q#Default exclude pattern : Setup.hs rstuv#The default Listener configuration / Listened sources are all haskell sources in . ) The default listenerInputDelay is 2 sec $Default compilation shakerArgument.  Wall is activated by default s  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvskjihgfedbc]^_`aZ\[WYXVRSTUEQPONMLKJIHGFCD@BA23456789:;<=>?,-./01l%&'()*+!"#$   mnopqrstuvs    !"#$"#$%&'()*+&'()*+,-./01-./012 3456789:;<=>?3456789:;<=>?@BAABCDDE QPONMLKJIHGFFGHIJKLMNOPQRSTUSTUVWYXXYZ\[[\]^_`a^_`abccdefghijklmnopqrstuvw$Print the list of available actions x:Print exit. The real exit management is made in conductor y"Print a begin action notification z{!Print an end action notification |dClean action is responsible to delete fileListenInfoDirectory containing temporary .o and .hi files }wxyz{|}wxyz{|}wxyz{|} ~:Get the build file (without extension) for the given file VGet the tuples of (newFiles,modifiedFiles) from given list of fileListenInfoDirectory NGet the tuples of (newFiles,modifiedFiles) from given fileListenInfoDirectory >Get the list of FileInfo of the given fileListenInfoDirectory 1List files in the given fileListenInfoDirectory S Files matching one regexp in the fileListenInfoIgnore shakerArgument are excluded Recursively list all files % All non matching files are excluded pq~ ~pq ~ $Parse the given string to a Command Parse a Command Parse to an action Parse a ShakerAction Parse the continuous tag (~) +Listen to keyboard input and parse command Execute the entered command Settings for haskeline RSTURSTU%initialize the mvar and launch forks @manage the job box. Fill it with a job every listenerInputDelay *listen to the job box and process the job Update the files status ]^_`a ]^_`a  <Get the corresponding mdata file from the given source file )Write given moduleData in dist directory -Parse module data from all haskell sources. dRead Module data from the given haskell source. It tries to read serialized information beforehand. oRead Module data from the serialized data. It returns Nothing if the serialized data is absent or out-of-date. /Include only module matching the given pattern  $List all test group of the project.  see  Shaker.TestTH @List all test group for test-framework from the list of modules )Generate a test group for a given module /Generate an expression for a single hunit test 8Generate an expression for a single quickcheck property  Initialize the master thread - Once quit is called, all threads are killed The main thread. :Execute the given action when the modified MVar is filled &Execute Given Command in a new thread Execute given action &Execute a single action with argument 3Add the given threadId to the listener thread list /Add the given threadId to the quit thread list (Add the given threadId to the mvar list  &Get the list of unresolved import and  unexposed yet needed packages +Configure and load targets of compilation. C It is possible to exploit the compilation result after this step. LChange the dynflags with information from the CompileInput like importPaths ( and .o and .hi fileListenInfoDirectory 8Collect module name and tests name for the given module 3Run haskell compilation on given CompileInput list -Run haskell compilation on all haskell files )Compile, load and run the given function KThe default plugin map contains mapping for compile, help and exit action GRead the build information from cabal and output a shakerInput from it   @Extract useful information from localBuildInfo to a ShakerInput   9Extract informations : Convert executable and library to  compile inputs  9Dispatch the processing depending of the library content -Convert a cabal executable to a compileInput . The target of compilation will the main file *Convert a cabal library to a compileInput 7 The target of compilation will be all exposed modules DCreate a dynFlags for ghc from a source fileListenInfoDirectory and  a liste of packages .Check and filter all invalid main definission Expose needed package  !"#$%&'(()*++,-../012234556789:;;<=>?@@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^^_`abcbdefgghijkklmnopqrstuvwxyz{|}~                  shaker-0.5.1 Shaker.RegexShaker.CommonUtil Shaker.TypeShaker.Action.Standard Shaker.Io Shaker.Parser Shaker.CliShaker.ListenerShaker.HsHelperShaker.ModuleData Shaker.TestTHShaker.ConductorShaker.GhcInterfaceShaker.CabalInterfaceShaker.Action.CompileShaker.ReflexiviteShaker.Action.TestShaker.PluginConfig Shaker.ConfigShaker.CabalInfoprocessListWithRegexp separateEqualseparateEqual'trimListPlugin CommandMap PluginMapMapImportToModules ModuleData GhcModuleDataghcModuleDataNameghcModuleDataAssertionsghcModuleDataTestCasemoduleDataNamemoduleDataFileNamemoduleDataHasMainmoduleDataPropertiesmoduleDataAssertionsmoduleDataTestCase PackageDatapackageDataMapImportToModulespackageDataListProjectModulesFileInfofileInfoFilePathfileInfoClockTimeFileListenInfofileListenInfoDirfileListenInfoIgnorefileListenInfoInclude ListenerInputlistenerInputFileslistenerInputDelay CompileInputcompileInputSourceDirscompileInputBuildDirectorycompileInputDynFlagscompileInputCommandLineFlagscompileInputTargetFiles ThreadDatathreadDataListenTokenthreadDataQuitTokenthreadDataListenListthreadDataQuitList ShakerInputshakerCompileInputsshakerListenerInputshakerPluginMapshakerCommandMapshakerArgumentshakerModifiedInfoFilesshakerThreadDatashakerInputStateshakerLocalBuildInfoshakerPackageIndexshakerModuleDatashakerVerbosity VerbosityDebugSilentCommand ShakerActionCleanQuitEmptyExecuteHelp InvalidActionIntelligentModuleTestFrameworkIntelligentTestFrameworkModuleTestFramework TestFramework FullCompileCompile InputStateshakerInputStateCommandshakerInputStateToken InputCommandAction ActionWithArgDuration ContinuousOneShot ListenState currentFilesmvModifiedFiles threadIds ConductorDataCompileMJobMvModifiedFiles CurrentFilesToken ThreadIdListShakerRShakergetListenThreadListgetModuleDataTestsgetModuleDataNamedefaultCompileFlagsdefaultHaskellPatternsdefaultExclude exitCommand emptyCommand listTestLibsmoduleDataExtensiondefaultDistDirrunHelprunExitrunStartActionrunEmpty runEndActionrunCleanrunInvalidActiongetCorrespondingBuildFilelistModifiedAndCreatedFilesgetCurrentFpCl listFilesrecurseMultipleListFilesrecurseListFilesmapImportToModuleshandleActionInterrupthandleIOException parseCommandgetInput listActionsinitializeListenerschedulelistenupdateFileStat parseHsFilesparseFileToHsModulehsModuleCollectProperties*abstractCollectFunctionWithUnqualifiedType filterSndmapSndgetListFunctiongetTupleFunctionNameType getSignaturegetFunBindNamegetIdentFromHsNamegetDeclshsModuleFileName hsModuleNamegetCorrespondingModuleDataFilewriteModuleDataparseAllModuleDataparseModuleDataparseModuleDataIfExist#convertModuleDataToFullCompileInputgroupByValidTargetsgetNonMainCompileInputfillModuleDataconstructModuleDatahsModuleDataHasTestfilterModulesWithPatternfilterFunctionsWithPatternsfilterFunctionsWithPatterns'removeNonTestModuleslistAllTestFrameworkGroupListlistTestFrameworkGroupListgetSingleTestFrameworkGroupconvertHunitTestCaseToTuplesgetSingleFrameworkHunitgetSingleFrameworkQuickCheck initThreadexecuteCommandgetListNeededPackagesinstalledPackageIdString initializeGhc ghcCompilefillModuleDataTestaddLibraryToDynFlagssearchInstalledPackageIdgenerateAutogenFilesapplyPreprocessSourcesgetPreprocessorDirectorygetCompileFlagsForExecutablegetCompileFlagsForLibrary runCompilerunFullCompileRunnableFunctionrunnableFunctionModulerunnableLibrairiesrunnableFunctionFunction runFunctionrunTestFrameworkrunModuleTestFrameworkgetModulesWithModuleFilteringgetModulesWithFunctionFilteringprocessModuleDataList executeTestdefaultPluginMapdefaultCommandMap defaultInputdefaultInputInitializeddefaultThreadDatadefaultInputStatedefaultCabalInput getExcluded getIncluded=~+$fMonoidListenerInput$fMonoidCompileInputlistModifiedAndCreatedFiles'convertToFullPathremoveDotDirectoryconstructImportToModules typeCommandtypeCommandNonEmpty typeEmptytypeMultipleAction typeAction parseArgumenttypeShakerActionparseMapActionwalk typeDuration processInputmyDefaultSettingscompleteActionautocompleteFunction initialize mainThreadinitializeConductorDatacleanAllThreads cleanThreadsthreadExecutorthreadExecutor' executeActionexecuteAction'handleContinuousInterruptaddThreadIdToListenMVaraddThreadIdToQuitMVaraddThreadIdToMVarImportToPackagesgetPackagesToExpose!configureDynFlagsWithCompileInputfillModuleDataTest' mergeMdatasconvertModSummaryToModuleDatagetHunitAssertionsgetHunitTestCasegetFunctionTypeWithPredicategetFunctionNameFromIdgetIdExportedList tyThingToId runUntilFailprintArgumentsrunSingleCompileInputreadConf callConfigurelocalBuildInfoToShakerInputcompileInputsToListenerInputlocalBuildInfoToCompileInputsexecutableAndLibToCompileInputexecutableToCompileInputlibraryToCompileInput toDynFlagsgetLibDependenciesconvertModuleNameToStringcheckInvalidMaincheckInvalidMain'exposeNeededPackagesfillPackageIndex