!fX@@      !"#$%&'()*+,-./0123456789:;<=>?Nonerattle)A data type for additional rattle optionsrattle)Convert a new option into a standard one.@rattle6Convert a normal option into potentially a rattle one.@SafeWABCDEFNone=?SX Grattle(Methods for Binary serialisation that go directly between strict ByteString values. When the Database is read each key/value will be loaded as a separate ByteString, and for certain types (e.g. file rules) this may remain the preferred format for storing keys. Optimised for performance.HGIJKLMNOPQRSTUVWXYZ[\None +]^_`abcdefghijklNoneSXmrattleGthe traced items, in the order we display them, and relative start timenrattle(Number of lines we used last time around rattle$What UI should rattle show the user.!rattle+Show a series of lines for each command run"rattle,Show a few lines that change as commands run#rattleDon't show commandsorattle?Run a compact UI, with the ShakeOptions modifier, combined withp !"#qroNonesrattleLike createDirectoryIfMissing TrueV but faster, as it avoids any work in the common case the directory already exists. tuvwxysz{|}Safe~rattle1The hash of the filename, and the UTF8 ByteStringrattleEquivalent to toStandard . normaliseEx from Development.Shake.FilePath.~ None2M  None "#14567=?Mlrattle-Which run we are in, monotonically increasing NoneP $rattle%Basic options for configuring rattle.&rattleWhere all my shared files go'rattle$Should I speculate? Under which key?(rattleKey to store run#)rattle#Should I share files from the cache*rattleNumber of simulateous processes+rattle)Extra options added to every command line,rattle Named directories, e.g. (PWD, .)-rattleNothing for auto detect.rattleSupport forward style stuff/rattleDefault $ value. !"#$%&'()*+,-./ None"#P#0rattleLType of exception thrown if there is a hazard when running the build system.rattleEaddHazardSet a b c d e f == mergeHazardSet a b (newHazardSet c d e f)0 NoneM'brattleCA hash, exactly 32 bytes, may contain NUL or other funny charactersrattleShow a hash as hex charactersrattleTIf there is a forwarding hash, and this file exists, use the forwarding hash instead None' Safe)2rattle8The inner thread is unmasked even if you started masked.SafeP2rattleGiven a pool, and a function that breaks the S invariants, restore them. They are only allowed to touch threadsLimit or todo. Assumes only requires spawning a most one job (e.g. can't increase the pool by more than one at a time)rattleaAdd a new task to the pool. See the top of the module for the relative ordering and semantics.rattleeSomewhat dubious. Safe if the waiter gets killed if the pool gets torn down, which we assume happens.rattleRun all the tasks in the pool on the given number of works. If any thread throws an exception, the exception will be reraised.None "#$&'MPX_D( rattleRun# we are onrattle\Things that have got to running - if you find a duplicate just run the IO to wait for it.rattlevThings currently running, with the time they started, and an amalgamation of their previous Trace (if we have any)rattleThings that have been read or written, at what time, and by which command Used to detect hazards. Read is recorded as soon as it can, Write as late as it can, as that increases hazards.rattletThings that have completed, and would like to get recorded, but have to wait to confirm they didn't cause hazardsrattlefThings what were required by the user calling cmdRattle, not added due to speculation. Will be the  speculate list next time around.rattle<Things that were used in the last speculation with this namerattlemIf I was to speculate, which would I do. A cached value computed from specutable, started, running and hazard1rattle'Type of actions to run. Executed using rattle.rattle?If you have been asked to generate a forwarding hash for writesrattleI finished running a command1NoneIv2rattleRun a sequence of 1_ actions in parallel. They will be run in parallel with no limit on simultaneous executions.3rattleParallel version of .4rattleParallel version of .6rattle0Apply specific options ot all nested Run values.7rattleMemoize an IO action8rattle'Memoize an IO action which is recursive2345678None"#K9rattle%A program that can be run externally.:rattle3Create a new program which is based on a TH splice.;rattleRun a program.9:;SafeL"NoneNrattle[The data files may be located relative to the current directory, if so cache it in advance.None%QrattleDTemplate Engine. Perform the following replacements on a line basis: script src="foo" /script ==>  script[[foo]] /script link-href="foo" rel="stylesheet" type="text/css" / ==>  styletype="text/css"[[foo]] /styleNone"#PXS<rattle/Given some options, produce various statistics.=rattle'Generate a profile report given a file.<=NoneV<>rattleRGiven an Action to run, and a list of previous commands that got run, run it again?rattle$Dunmp the contents of a shared cache@  !"#$%&'()*+,-./0123456789:;<=>?@>1?0$%&'()*+,-./ !"# 23467859:;=< !"#$%&'()*+,-./0123456789:;<=>?@ A A B C D E F G H I J K LMNOPQRSTUVWXYZ[\]^_`abcdefghhijklmnopqrstuvwxyz{|}~                     M      !rattle-0.2-DBiDC1DtpFX190g2MgDrj5Development.RattleDevelopment.Rattle.CmdOptionGeneral.BilistGeneral.BinaryGeneral.EscCodesDevelopment.Rattle.UI General.ExtraGeneral.FileNameGeneral.FileInfoDevelopment.Rattle.TypesDevelopment.Rattle.OptionsDevelopment.Rattle.HazardsDevelopment.Rattle.HashDevelopment.Rattle.SharedGeneral.Thread General.PoolDevelopment.Rattle.ServerDevelopment.Rattle.DerivedDevelopment.Rattle.Program Paths_rattle General.PathsGeneral.TemplateDevelopment.Rattle.ProfilebaseControl.Monad.IO.ClassliftIOshake-0.19-GqSaJkHeRkoDJ7vwpNMhDevelopment.Shake.Commandcmd$Development.Shake.Internal.CmdOption InheritStdinNoProcessGroupCloseFileHandles FSAOptions UserCommandAutoDeps FileStderr FileStdout EchoStderr EchoStdout WithStderr WithStdoutTimeoutTraced BinaryPipesShell FileStdinStdinBSStdinAddPathRemEnvAddEnvEnvCwd CmdOption CmdOption2IgnoredHashNonDeterministic WriteFile toCmdOptionRattleUI RattleSerial RattleFancy RattleQuiet RattleOptions rattleFilesrattleSpeculate rattleMachine rattleSharerattleProcessesrattleCmdOptionsrattleNamedDirsrattleUI rattleForward rattleOptionsHazardRunparallelforPforP_ cmdWriteFilewithCmdOptionsmemomemoRecProgram newProgram runProgram graphData writeProfile rattleRun rattleDump fromCmdOptionBilisttoListisEmptyconssnocunconsBinaryExForeign.StorableStorableputExgetExBuilder binarySplit binarySplit2 binarySplit3unsafeBinarySplit sizeBuilder runBuilder putExStorable getExStorableputExStorableListgetExStorableList putExList getExList putExPair getExPairputExNgetExNColorBlackRedGreenYellowBlueMagentaCyanWhite checkEscCodesremoveEscCodesescWindowTitle escCursorUp escClearLine escForeground escNormalsTracessUnwindwithUIUIaddUIisControlledUIcreateDirectoryRecursiveNoShow whenRightM allMaybeMcatchIOdoesFileExist_memoIOgetProcessorCountunionWithKeyEithersinsertWithKeyEithersFileNamefilepathNormalisefileNameToStringfileNameToByteStringfileNameFromStringfileNameFromByteStringbyteStringToFileNameFileSizeModTimeFileHash noFileHash isNoFileHash getFileHashdoesFileNameExist getModTime getFileInfoRunIndexTouchSettsWritetsReadTouchtReadtWriteTracetRuntStarttStoptTouchCmdmkCmdfsaTracenormalizeTouch newTouchSet addTouchSet runIndex0 nextRunIndexrattleOptionsExplicitshortenexpand addHazardSet RecoverableNonRecoverable RestartableReadWriteHazardWriteWriteHazard HazardSetrecoverableHazardrestartableHazardemptyHazardSet seenHazardSet newHazardSetmergeHazardSetHashhashHexhashFileForward hashLength toHashForwardfromHashForwardhashFileForwardIfStalehashFileIfStalehashFile hashStringhashByteStringhashHashShared withSharedgetFilesetFilenextRunlastRun getSpeculate setSpeculate getCmdTraces addCmdTracedumpnewThreadFinallyThread stopThreadsstepaddPool addPoolWaitrunPool PoolPriority PoolRequired PoolSpeculatePoolrunIndexstartedrunninghazardpendingrequired speculatable speculateNextgenerateHashForwardscmdRattleFinishedRattlefromRun addCmdOptions withRattleData.TraversableforMversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameinitDataDirectoryrattleVersionStringreadDataFileHTML runTemplateGraphedgesnodesconstructGraphdotStringOfGraph