V{N,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ SafeSafe5 recursive ? Recursive?        None5;Internal: do not use yourself.DAny IO action can be part of a & action.5This is the most important instance for the end user. liftIO :: IO a -> Zift a/allows embedding arbitrary IO actions inside a & action.;The implementation also ensures that exceptions are caught.EA & action can fail.,To make a Zift action fail, you can use the fail :: String -> Zift a function.bThe implementation uses the given string as the message that is shown at the very end of the run.F& actions can be composed.G& actions can be sequenced.DThe implementation automatically parallelises the arguments of the ( *)U function. If any of the actions fails, the other is cancelled and the result fails.)#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK#%$&'()*+,-/.0123456789:;<)789:0123456,-./K)*+J&'(IHGFEDC#$%BA@?>=;<#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKNone5Z[\]^_Z[\]^Z[\]^_Z[\]^_None5abcdefgabcdabcdgfeabcdefg NoneZ[\]^NoneiGet the root directory of the zift.hs script that is being executed.j#Get the temporary directory of the zift.hs script that is being executed.6To persist any state between runs, use this directory.k Get all the lGet a single settingmDeclare a given list of &# actions to be execute in parallel.nLike mapA, but specialised to & and '[]', and ensures that the output of actions is printed in the right order, even if they are executed in an arbitrary order.oLike mapA_, but specialised to & and '[]', and ensures that the output of actions is printed in the right order, even if they are executed in an arbitrary order.pLike for, but specialised to & and '[]', and ensures that the output of actions is printed in the right order, even if they are executed in an arbitrary order.qLike for_, but specialised to &Q and '[]', and ensures that the output of actions is printed in the right order.r5Print a message (with a newline appended to the end).sPrint a message (with a newline appended to the end), in the standard zift script color. This is the function that the zift script uses to output information about the stages of the zift script run.toPrint a message (with a newline appended to the end) that signifies that a part of the processing is now done.Example: mdoThingZift :: Zift () doThingZift = do doThing printProcessingDone "doThing completed successfully."uPrint a message (with a newline appended to the end) that signifies that a part of the processing failed. This message will not cause the zift script run to fail.Example: ~doDangerousThing :: Zift () doDangerousThing = do errOrResult <- doThing case errOrResult of Left err -> printPreprocessingError $ unwords ["doThing failed with error:", err] fail "doThing failed." Right result -> do printPreprocessingDone unwords ["doThing succeeded with result:", result]vHPrint a message (with a newline appended to the end) with custom colors.See the  1https://hackage.haskell.org/package/ansi-terminal ansi-terminal package for more details.ijklmnopqrstuvw*#%$&'()*+,-/.0123456789:;<ijklmnopqrstuvwijklmnopqrstuvwijklmnopqrstuvwNonex*Add a given zift action as a preprocessor.y(Add a given zift action as a prechecker.z%Add a given zift action as a checker.xyzabcdxyzxyzxyzNone{Recursively call each zift.hsK script in the directories below the directory of the currently executing zift.hs script.Only the topmost zift.hsH script in each directory is executed. This means that, to execute all zift.hs% scripts recursively, each of those zift.hs scripts must also have a { declaration.{|{|{|{|Safe!"}~ }~}~ }~ None!"Run a a to create the Z, and then use  ,ziftWith = renderZiftSetup >=> ziftWithSetupBuild a zifter using a Z.;A zifter has the capabilities that you would expect from a  'zift.hs' file: zift.hs run: Run the zift.hs script as a pre-commit hook.zift.hs preprocess: Run the preprocessorzift.hs precheck: Run the prechecker zift.hs check: Run the checkerzift.hs install: Install the zift.hs script as a pre-commit hook.&adijklmnopqrstuvxyz{xyzmnopq{ad&ijklrstuv  !"#$%&'()*+,-./0112334567899:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefgghijklmnopqrstuvwxyz{|}~  %zifter-0.0.1.3-BlFeu6n8FZI6hgby90aXfR Zifter.ZiftZifter.OptParse.TypesZifter.Zift.TypesZifter.Setup.TypesZifter.Script.Types Zifter.ScriptZifter.RecurseZifter.OptParseZifter Zifter.Types Zifter.SetupbaseControl.Monad.IO.ClassliftIOSettingssetsOutputColorDispatch DispatchRunDispatchInstallDispatchPreProcessDispatchPreCheck DispatchCheck ConfigurationFlagsflagsOutputColorCommand CommandRunCommandInstallCommandPreProcessCommandPreCheck CommandCheck Instructions Arguments $fShowCommand $fEqCommand $fShowFlags $fEqFlags$fShowConfiguration$fEqConfiguration$fShowDispatch $fEqDispatch$fGenericDispatch$fShowSettings $fEqSettings$fGenericSettings ZiftResult ZiftSuccess ZiftFailedZiftzift ZiftStatebufferedOutputLMRLMR ZiftContextrootdirtmpdirsettings printChan recursionList ZiftOutput outputColors outputMessagetryFlushZiftBuffer flushable$fMonadFailZiftResult$fMonadZiftResult$fApplicativeZiftResult$fFunctorZiftResult$fMonoidZiftResult$fValidityZiftResult$fMonadThrowZift $fMonadIOZift$fMonadFailZift $fMonadZift$fApplicativeZift $fFunctorZift $fMonoidZift$fMonoidZiftState$fValidityZiftContext$fShowZiftOutput$fEqZiftOutput$fGenericZiftOutput $fShowLMR$fEqLMR $fGenericLMR$fGenericZiftContext$fShowZiftState $fEqZiftState$fGenericZiftState$fShowZiftResult$fEqZiftResult$fGenericZiftResult $fGenericZift ZiftSetupziftPreprocessorziftPreChecker ziftChecker$fMonoidZiftSetup$fGenericZiftSetup ZiftScriptrenderZiftScriptrenderZiftSetup$fMonadZiftScript$fApplicativeZiftScript$fFunctorZiftScript$fGenericZiftScript getRootDir getTmpDir getSettings getSettingziftPmapZmapZ_forZforZ_ printZiftprintZiftMessageprintPreprocessingDoneprintPreprocessingErrorprintWithColors addZiftOutput preprocessor precheckerchecker recursiveZift recursivelygetInstructionscombineToInstructionsgetConfiguration getArgumentsrunArgumentsParser argParser parseArgs parseCommandparseCommandRunparseCommandPreProcessparseCommandPreCheckparseCommandCheckparseCommandInstall parseFlags doubleSwitchziftWith ziftWithSetup runZiftAutorunZift getContext halfIndentindentprintRecursionMsg runZiftScriptfindZiftFilesRecursivelyrunrunPreProcessor runPreChecker runCheckerrunAsPreProcessorrunAsPreChecker runAsChecker autoRootDirinstall installIn dotGitDir dotGitFilehooksDir