!+(8      !"#$%&'()*+,-./012345672019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM  bootsPlugin generates component u with the context of component i running in monad m.bootsRun plugin in given context i.bootsPromote a plugin into another.bootsConvert a plugin into another.bootsOApply a function to transform the result of a continuation-passing computation.bootsUCreate bracket style plugin, used for manage resources, which need to open and close.A simple example:;res = bracketP (putStrLn "open") (const $ putStrLn "close")+runPlugin () res (const $ putStrLn "using")openusingclosebootsOpen resource.bootsClose resource.bootsResource plugin. 2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM`boots!Application monad transformation.boots%Run application monad transformation.2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AMboots(Run application using a plugin. Context cxt can't escape from m.  2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AMboots-Environment providing a configuration parser.boots!Plugin used for parse properties.bootsConfiguration file name.  2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM bootsLogger config.bootsLogger buffer size. bootsLogger file path.!bootsMax logger file size."boots.Max number of logger files should be reserved.#bootsLog level to show.$boots)Environment providing a logging function.&boots#Add additional trace info into log.'boots$Plugin providing a logging function.'boots'Application name will be logged in log.! "#$%&'$%! "#&'2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM$.bootsDEnvironment values with a configuration parser and logging function.0boots.Simple plugin initialized both configurations  and logger '.4bootsCSimple plugin provides a configuration parser and logging function.4boots-Application name and configuration file name../012340123./42019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM% ! "#$%&'./012342019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=>?@AM', ! "#$%&'./01234  8  !"#$%&'()*+,-./01223456789:;<=>?@ABCDDEFGHIJKboots-0-A7kiWt9vLMQ3GU1KAqg9nYBootsBoots.Plugin.LoggerBoots.Plugin.SalakBoots.Plugin.SimpleBoots.Internal.PluginBoots.Internal.AppBoots.Internal Boots.PluginbaseControl.Monad.IO.ClassliftIOtransformers-0.5.6.2Control.Monad.Trans.Classlift(exceptions-0.10.2-2mS9GUVmJpmKSw5CuaN6ikControl.Monad.CatchthrowM*monad-logger-0.3.30-6H7m5vLMabMAHTuQdTSGoKControl.Monad.Logger.CallStacklogOtherlogErrorlogWarnlogInfologDebug mtl-2.2.2Control.Monad.Reader.Classask!salak-0.3.1-4u1yBOa8bRrBLIOqaO3vhSalak.Internal.Proprequire askReloadaskSalak MonadSalakPlugin runPluginpromote withPlugin mapPluginbracketPAppTrunAppTbootingHasSalak askSourcePack pluginSalak$fMonadSalakAppT$fMonadSalakPlugin$fHasSalakSourcePackLogFunc LogConfig bufferSizefilemaxSize rotateHistorylevel HasLogger askLoggeraddTrace pluginLogger$fFromPropmLogLevel$fFromPropmLogConfig$fDefaultLogConfig$fMonadLoggerAppT$fMonadLoggerPlugin$fHasLoggerLogFunc HasSimple askSimpleSimple sourcePacklogFunc pluginSimple$fHasSalakSimple$fHasLoggerSimple$fHasSimpleSimple