zgLE      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None<FT      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>None"#&'+-6<>?FQTVHa$1A generic exception holding only a piece of text. -Logs can hold arbitrary data serialized as a -f. 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.1"Send a single log into the stream.36A generic handler for logs. Since it's polymorphic in mK you can choose to emit more logs and make it a log transformer instead.4LAdd a new context on top of every log that comes from the given computation.5)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.@(Log everything to the console. Uses the  instance for .ADiscard the logs.B>Use the given function to transform and possibly discard logs.C7Only let through logs that satisfy the given predicate.D'Transform logs with the given function.E<Filter out logs that are comming from below a certain depth.F6Filter logs whose depth satisfies the given predicate.GwFor each log, add it's message to the logs breadcrumb list. This is useful so you don't have to manually add crumbs.H: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.IAdd a user to every log.JAdd a crumb to every log.KQAttach arbitrary data to every log. Typically you want to use this handler on logX functions directly like 4setDataWithSummary "some data" (logInfo "some info")LAttach an arbitrary -< to every log. Typically you want to use this handler on logX functions directly like +setDataTo "some data" (logInfo "some info")M2Attach an arbitrary value to every log using it's H8 instance. Typically you want to use this handler on logX functions directly like )setDataToJsonOf 123 (logInfo "some info")N2Attach 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")O"Add the current time to every log.SPuts 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.VPrint out the logs in rich format. Truncates at the given length. Logs will contain: message, timestamp, data, user and the call stack.WWCatches all IO exceptions, logs them and throws them back. The callstack in the log is not# the callstack of the exception.d?/0@ABCDEFGHIJ  !"#'%$&()*+,-.123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW_.]\/01,-)*+#$%&'( !"2XYZ [ ^3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW    !"#$%&'()*+,-]\/0K      !"#$%&'())*++,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}}}}}~}~}~}}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~}~}~}~}~}~}~}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}R}}}}}}}}}}~}~}~}~}~}}}}}} } } } } }}}}}}}}}}}}}~}~}~}~ ! " # $ % & '()*}~+}~,}~- . / 0 1}2 3 4}56}57}58}~9}~:}5;<=><=?<=@<=ABCD}EF}~GHIJKLMKLNKLOKLPKLQKLRKLSKLTKLUKVWKXYKXZK[\K[]K[^K[_K[`K[aK[bK[cK[dK[eK[fK[gK[hK[iK[jK[kK[lK[mK[nK[oK[pK[qK[rK[sK[tK[uK[vK[wK[xK[yK[zK[{K[|K[}K~K~K~K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK!KKKGKKKKKKKKKKKKKKKKKKKKKK}}}}}}}}}}~}~}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} } } } } } } } }}}}}}}}}}}}}} }!}"}#}$%}$&}$'}$(}$)}$*}$+}$,}$-}$.}$/}$0}$1}$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}cd}ef}cg}ch}ij}ik}il}im}n}o}p}q}r}s}t}u}v}w}x}yz}yz}y{}y|}y|}y}}y~}y~}y}y}y}y}y}y}y}y}y}y}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}E}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }  }  }  } } } } } } } }}~}~}~}~}~}~}~}~}~}~}~ }~!}~"}~#}$%}$&}$'}i(}i()*+,-.,-/,-0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-:,-;,-<,-=,->,-?,-@,-A,-B,-C,-D,-E,-F,-G,-H,-I,-IJKLJKM<=NJOPJOQJKRJKRJKS<=T<=UJKVJKWJKXJKYJKZJK[JK\JK]^_`^_a^_b^_c^_d^_e^_f^_g^_hijklmlnlolplqlrlsltlululvlwx-simple-logging-0.2.0.3-CSJtz8g3p9k9oLX7pC4gHaControl.Effects.Logging InterludeControl.EffectsSignalGenericExceptionLog logMessagelogLevellogTags logContextlogUser logCrumbslogData logTimestamp logCallStackLogData dataPayload dataSummary CrumbData DefaultCrumb HttpCrumbcrumbUrl crumbMethodcrumbStatusCode crumbReasonCrumbcrumbTimestamp crumbMessage crumbCategory crumbDataLogUser logUserId logUserEmaillogUserUsernameLevelDebugInfoWarningErrorFatalContext getContextTagLoggingLoggingMethods _logEffect logEffect addIfExists handleLogging layerLogs originContext logWithLevellogInfo logWarninglogErrorlogDebuglogFatal logAndErrorlogAndThrowsErrlogAndThrowGenericlogMessagesToStdoutlogRawToStdoutmuteLogs witherLogs filterLogsmapLogslogIfDepthLessThan logIfDepthmessagesToCrumbs collectCrumbs addUserToLogsaddCrumbToLogssetDataWithSummary setDataTosetDataToJsonOfsetDataToShowOfsetTimestampToNow highlightTyellowcolorFromLevelwriteDataToFilestruncate manyLinesprettyPrintSummarylogIOExceptions$fToJSONLogUser$fToJSONCrumbData $fToJSONCrumb$fIsStringLogDataD:R:EffMethodsLoggingm0$fEffectLogging$fExceptionGenericException$fGenericEffMethods$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$fShowGenericExceptionbaseGHC.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 toIntegerquotremdivmodquotRemdivModMonadfail>>=>>returnFunctorfmap<$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 TraversabletraversemapM sequenceAsequenceData.Semigroup Semigroup<>sconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRightliftMideither mtl-2.2.2-L9xXSHNcnHK5lB15ncBkleControl.Monad.State.Class MonadStategetstateputbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>String#text-1.2.2.2-EakMpasry3jA6OIwSZhq9MData.Text.InternalText$aeson-1.2.4.0-3WypLpMgAyDIigd7IxSLsp 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.!=.:!.:?.:fromJSONwithEmbeddedJSONwithBoolwithScientific withNumber withArraywithText withObject parseJSON2 parseJSON1genericLiftParseJSONgenericParseJSON GFromJSON gParseJSONFromArgs NoFromArgs From1ArgsFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.InternalcamelTo2defaultTaggedObjectdefaultOptionsobjectResultSuccessObjectArrayValueNumberNull DotNetTimefromDotNetTimeOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordstagSingleConstructors SumEncoding TaggedObject UntaggedValueObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameData.Aeson.Types.GenericZeroOne GHC.Conc.SyncforkOnWithUnmaskforkIOWithUnmaskforkOnControl.ConcurrentforkOSThreadId GHC.UnicodeisSpaceisAlphaisDigit Text.Readread MonadPlusmzeromplusdiffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmask forkFinallyrtsSupportsBoundThreadsControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChanControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Monad.IO.ClassMonadIOliftIOmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMforM Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarrfirstsecond***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonad ArrowLooploop System.IOreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarmkWeakThreadIdthreadCapabilityyield myThreadIdthrowTo killThreadsetNumCapabilitiesgetNumCapabilitiesforkIOGHC.IO.ExceptionioErrorGHC.IOFilePath userErrorIOError GHC.Exception Exception toException fromExceptiondisplayExceptionnotElemallanyorand concatMapconcatmsum sequence_forM_mapM_ Data.MonoidDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProduct Data.OldListunwordswordsunlineslines Data.Char isSeparatorisNumberisMarkisLetter digitToIntreads Data.Proxy asProxyTypeOfProxyKProxyControl.Category>>><<< readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPReadStoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisSymbol isPunctuation isHexDigit isOctDigit isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategoryControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparatorFormat Surrogate PrivateUse NotAssigned Data.Function&onfixvoidlcmgcd^^^oddevenGHC.Charchr intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeuncurrycurryGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVarsubtractasTypeOfuntil$!flip.constordapliftM5liftM4liftM3liftM2when=<<GHC.Err undefinederrorWithoutStackTraceerror SomeException&&||not'exceptions-0.9.0-2S3N1rizzoL8iZyenIlJmhControl.Monad.CatchbracketOnErrorfinallybracket_bracket onExceptioncatchestryJusttry handleJusthandleIf handleAll handleIOErrorhandle catchJustcatchIf catchIOErrorcatchAlluninterruptibleMask_mask_ MonadThrowthrowM MonadCatchcatch MonadMaskmaskuninterruptibleMaskgeneralBracketHandler+transformers-0.5.5.0-1bbDhu8ypp8LC8lJMFju65Control.Monad.Trans.State.LazyrunStateStategetsControl.Monad.Trans.Class MonadTransliftStateT runStateTmodify'modify evalState execStatemapState withState evalStateT execStateT mapStateT withStateT'string-conv-0.1.2-GXBFAR1hBTEYZnQDZEByuData.String.ConvconvSLconvStoSLtoSLeniencyStrictLenient StringConvstrConvpshowputTextprint.simple-effects-0.10.0.0-JYzNQJPZcR6HRHgMmvCghQ implementEffect EffMethodsCanLift liftThrough mergeContext MonadEffecteffectRuntimeImplementedgetRuntimeImplemented MonadEffects