x+N>~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}None:DR~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*~~None!"%&*,:<=DORT$1A generic exception holding only a piece of text. -Logs can hold arbitrary data serialized as a Sf. Additionally, a summary can be provided which is intended to be displayed fully in log summaries.]Crumbs come in two varieties. A normal crumb is a list of key-value pairs. There's also a w where you can put more specific information about the processed HTTP request (if your application is a web server).5Breadcrumbs are the steps that happened before a log.]If a notion of a user exists for your application, you can add this information to your logs.#The severity of the log.)A name for a "layer" of your application. Typically, a log will contain a stack of contexts. Think of it as a call stack specific for your application.,6Arbitrary piece of text. Logs contain a list of these..The logging effect.3"Send a single log into the stream.46A generic handler for logs. Since it's polymorphic in mK you can choose to emit more logs and make it a log transformer instead.5LAdd a new context on top of every log that comes from the given computation.6)Get the bottom-most context if it exists.=0Log an error and then throw the given exception.>ULog an error and then throw a checked exception. Read about checked exceptions in .?TLog an error and throw a generic exception containing the text of the error message.@fLog a stripped-down version of the logs to the console. Only contains the message and the severity.A(Log everything to the console. Uses the  instance for .BDiscard the logs.C>Use the given function to transform and possibly discard logs.D7Only let through logs that satisfy the given predicate.E'Transform logs with the given function.F<Filter out logs that are comming from below a certain depth.G6Filter logs whose depth satisfies the given predicate.HwFor each log, add it's message to the logs breadcrumb list. This is useful so you don't have to manually add crumbs.I:Each log that passes through will get all of the crumbs of the previous logs added. If, for example, you're writing a web server, you might want to have this handler over the request handler so that if an error occurs you can see all the steps that happened before it, during the handling of that request.JAdd a user to every log.KAdd a crumb to every log.LQAttach arbitrary data to every log. Typically you want to use this handler on logX functions directly like 4setDataWithSummary "some data" (logInfo "some info")MAttach an arbitrary S< to every log. Typically you want to use this handler on logX functions directly like +setDataTo "some data" (logInfo "some info")N2Attach an arbitrary value to every log using it's n8 instance. Typically you want to use this handler on logX functions directly like )setDataToJsonOf 123 (logInfo "some info")O2Attach an arbitrary value to every log using it's 8 instance. Typically you want to use this handler on logX functions directly like )setDataToShowOf 123 (logInfo "some info")P"Add the current time to every log.TPuts data of each log into a separate file inside of a given directory. Replaces the data of the logs with the path to the files.WPrint out the logs in rich format. Truncates at the given length. Logs will contain: message, timestamp, data, user and the call stack.XWCatches all IO exceptions, logs them and throws them back. The callstack in the log is not# the callstack of the exception._  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^g+,-./01012345678  !"#$'%&()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX_./^01,-)*+#$%&'( !"2]\[ Z Y3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX7   !"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^019      !"#$%&'())*++,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~R~~~~~~~~~~~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~ !"!#!$!%!&!'!()*+~,~-~.!/!0!1!2~3!4!5~67~68~69:;<:;=~>~?~@~A~B~C~D~E~F~G~H~IJ~KL~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~^~_~`a~`bcde~f~6gcdhcdicdjcdklmn~Io~pqrstuvtuwtuxtuytuztu{tu|tu}tu~tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"tttpttttt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~~~~ ~!"~!#~!$~!%~!&~!'~!(~!)~!*~!+~!,~!-~!.~!.~!/~!0~!1~!2~!3~!4~!5~!6~!7~!8~!9~!:~!;~!;~!<~!=~>?~>@~AB~AC~AD~AE~AF~AG~AH~AI~AJ~AK~AL~AM~NO~PQ~PR~PS~PT~PU~PV~PW~PX~PY~Z~[\~[]~[^~[_~[`~[a~[b~[c~[d~[e~[f~[g~[h~ij~k~l~m~n~o~p~q~rs~rs~rt~ru~ru~rv~rw~rw~rx~ry~ry~rz~r{~r{~r|~r}~r}~r~~~i~i~~~~~~~~~~~~~~~~~~~~~~~~K~K~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~ !" !# !$ !% !& !' !( !) !* !+ !, !- !. !/ !0 !1 !2 !3 !4 !5 !6 !7 !8 !9 !: !; !< !<:=>:=?cd@:=A:=A:=BcdC:=D:=E:=F:=G:=H:=I:=J:=KLMNLMOLMPLMQLMRLMSLMTLMULMVWXWYWZW[W\W]W^W_W_W`WaWaWbWcd-simple-logging-0.2.0.2-29Bk085rOcPCKT68idgA7LControl.Effects.Logging InterludeControl.EffectsSignalGenericExceptionLog logMessagelogLevellogTags logContextlogUser logCrumbslogData logTimestamp logCallStackLogData dataPayload dataSummary CrumbData DefaultCrumb HttpCrumbcrumbUrl crumbMethodcrumbStatusCode crumbReasonCrumbcrumbTimestamp crumbMessage crumbCategory crumbDataLogUser logUserId logUserEmaillogUserUsernameLevelDebugInfoWarningErrorFatalContext getContextTagLogging LoggingMsg LoggingRes addIfExists logEffect handleLogging layerLogs originContext logWithLevellogInfo logWarninglogErrorlogDebuglogFatal logAndErrorlogAndThrowsErrlogAndThrowGenericlogMessagesToStdoutlogRawToStdoutmuteLogs witherLogs filterLogsmapLogslogIfDepthLessThan logIfDepthmessagesToCrumbs collectCrumbs addUserToLogsaddCrumbToLogssetDataWithSummary setDataTosetDataToJsonOfsetDataToShowOfsetTimestampToNow highlightTyellowcolorFromLevelwriteDataToFilestruncate manyLinesprettyPrintSummarylogIOExceptions$fExceptionGenericException$fIsStringLogData $fToJSONCrumb$fToJSONCrumbData$fToJSONLogUserD:R:EffectLoggingmethodmr0$fEqTag$fOrdTag $fReadTag $fShowTag $fEqContext $fOrdContext $fReadContext $fShowContext $fEqLevel $fOrdLevel $fReadLevel $fShowLevel $fEqLogUser $fOrdLogUser $fReadLogUser $fShowLogUser $fEqCrumbData$fReadCrumbData$fShowCrumbData $fEqCrumb $fReadCrumb $fShowCrumb $fEqLogData $fOrdLogData $fReadLogData $fShowLogData $fShowLog$fEqGenericException$fOrdGenericException$fReadGenericException$fShowGenericExceptionpshowputTextprintbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$GHC.Real fromIntegral realToFrac Control.MonadguardjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonadfailreturn>>=>>Functorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadReadreadList readsPrecReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractionroundceilingfloorGHC.ShowShow showsPrecshowshowListControl.Monad.FixMonadFixmfix Applicativepure<*>*><* Data.FoldableFoldablefoldrlengthfoldMapnullfoldlfoldl1sumproductfoldr1maximumminimumelemData.Traversable TraversablemapMsequencetraverse sequenceAData.Semigroup Semigroup<>sconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRighttransformers-0.5.2.0Control.Monad.Trans.Class MonadTranslift MonadPlusmzeromplus=<<whenliftMliftM2liftM3liftM4liftM5ap Data.Functorvoid Data.FunctionfixmapM_forM_ sequence_msumforMfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_foldMfoldM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIO mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6Control.Monad.State.Classmodifyideither MonadStategetstateputbytestring-0.10.8.1Data.ByteString.Internal ByteString<$>String#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.InternalText$aeson-1.2.1.0-AaNXgHjd07wH94vQOVfApS Data.AesoneitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecode decodeStrict'decode' decodeStrictdecodeencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONToArgsNoToArgsTo1ArgsToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValueToJSON1 liftToJSONliftToJSONListliftToEncodingliftToEncodingListToJSON2 liftToJSON2liftToJSONList2liftToEncoding2liftToEncodingList2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeriesData.Aeson.Types.FromJSON.!=.:!.:?.:fromJSONwithBoolwithScientific withNumber withArraywithText withObject parseJSON2 parseJSON1genericLiftParseJSONgenericParseJSON GFromJSON gParseJSONFromArgs NoFromArgs From1ArgsFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.GenericZeroOneData.Aeson.Types.InternaldefaultOptionsobjectResultSuccessObjectArrayValueNumberNull DotNetTimefromDotNetTime GHC.UnicodeisSpaceisAlphaisDigit Text.Readreaddiffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChan Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarrfirstsecond***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonad ArrowLooploopControl.Category>>><<< System.IOreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarreads GHC.Conc.SyncmkWeakThreadIdthreadCapabilityyield myThreadIdthrowTo killThreadsetNumCapabilitiesgetNumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOThreadIdGHC.IO.ExceptionioErrornotElemallanyorand concatMapconcat Data.MonoidDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductGHC.IOFilePath userErrorIOError GHC.Exception Exception toException fromExceptiondisplayException Data.Proxy asProxyTypeOfProxyKProxy Data.OldListunwordswordsunlineslines Data.Char isSeparatorisNumberisMarkisLetter digitToInt readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPReadS&ontoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisSymbol isPunctuation isHexDigit isOctDigit isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategoryFormatControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparator Surrogate PrivateUse NotAssignedlcmgcd^^^oddevenGHC.Charchr intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeuncurrycurrysubtractGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVarasTypeOfuntil$!flip.constordGHC.Err undefinederrorWithoutStackTraceerror SomeException&&||not'exceptions-0.8.3-74UMKX8an841ULC0nHtYN7Control.Monad.CatchbracketOnErrorfinallybracket_bracket onExceptioncatchestryJusttry handleJusthandleIf handleAll handleIOErrorhandle catchJustcatchIf catchIOErrorcatchAlluninterruptibleMask_mask_ MonadThrowthrowM MonadCatchcatch MonadMaskmaskuninterruptibleMaskHandlerControl.Monad.Trans.State.LazyrunStateStategetsStateT runStateTmodify' evalState execStatemapState withState evalStateT execStateT mapStateT withStateT(string-conv-0.1.2-GrkAjRoWmiAIOB1vrXZLfhData.String.ConvconvSLconvStoSLtoSLeniencyStrictLenient StringConvstrConv,simple-effects-0.9.0.1-YiFst5CUJsCZOnyQCzBLR handleEffectMsgOrResMsgResEffect MonadEffecteffectEffectWithKindgetEffectWithKind EffectHandlerunpackEffectHandler MonadEffects