Îõ³h,'i     0.1.0None'7:=?ÁÓÖÙÞåñõøÜNon-interleaved version of Non-interleaved version of  Non-interleaved version of  Non-interleaved version of  Non-interleaved version of  Non-interleaved version of  Non-interleaved version of  Non-interleaved version of  None'7:=?ÁÓÖÙÞåñõø#None'7:=?ÁÓÖÙÞåñõøÆ  Invocation%An invocation not only tells you the where, but also the when: it pairs a  : with a count, automatically incremented on each call to . Each   uses its own counter.Label associated with  This is an internal type. CallsiteÄA callsite tells you where something was called: a location in the source, and the name of the function that did the calling. Optionally, they can be given an additional user-defined label also.NOTE: If you are seeing  {unknown}Å instead of the function name, the calling function does not have a  annotation: ÷yourFunction :: HasCallStack => IO () -- 'HasCallStack' probably missing yourFunction = do let cs = callSite ..-Once you add this annotation, you should see  yourFunction instead of  {unknown}Õ. Similarly, if you have local function definitions, it may be useful to give those  constraints of their own: ¢yourFunction :: HasCallStack => IO () yourFunction = .. where someLocalFn :: HasCallStack => IO () someLocalFn = do let cs = callSite ..In this example the  constraint on  someLocalFn6 means that the calling function will be reported as  someLocalFn instead of  yourFunction. Render   to human-readable format Variant on ( which omits the package and module name Current  Current   with user-defined labelInternal auxiliary to   and  Render   to human-readable formatNew invocationSee   for discussion.Generalization of     !" None'7:=?ÁÓÖÙÞåñõø §Callback of type  (a -> m b)ÊWhen we invoke a callback, it is useful to distinguish between two things:The # of the  invocation of the callbackThe   of the  definition of the callbackÇThe purpose of this module is to be careful about this distinction; a × backtrace originating from an invocation of a callback will look something like this: ÉgM, called at .. .. g2, called at .. g1, called at .. callbackFn, called at .. invoking callback defined at invokeCallback, called at .. fN, called at .. .. f2, called at .. f1, called at ..wheref1 .. fN2 are the function calls leading up to the callbackg1 .. gM3 are the function calls made inside of the callback ( tells us where the callback was definedDefine See & for discussion and motivation of the two  constraints.Invoke None'7:=?ÁÓÖÙÞåñõø æ    None'7:=?ÁÓÖÙÞåñõøðThread-local scope.Most recent invocations are first in the list.Extend current scopeGet current scope"Inherit scope from a parent thread†This sets the scope of the current thread to that of the parent. This should be done prior to growing the scope of the child thread; Ì will fail with an exception if the scope in the child thread is not empty. See also .Convenience combination of $ and None'7:=?ÁÓÖÙÞåñõøb*Print debug message, showing current scope%     !"#$ %&'()*+,-./012debuggable-0.1.0-inplaceDebug.Provenance.CallbackDebug.NonInterleavedIODebug.ProvenanceDebug.Provenance.ScopeDebug.NonInterleavedIO.Scoped debuggablePreludeputStrputStrLnprint Debug.Tracetrace traceShow traceShowIdtraceM traceShowMDebug.NonInterleavedIO.TraceDebug.Provenance.Internal ghc-internalGHC.Internal.Stack.Types HasCallStack InvocationCallSiteprettyCallSitecallSitecallSiteWithLabelprettyInvocation newInvocationCallbackcallbackinvokeCallbackScopescopedgetScope inheritScopeforkInheritScopeLabel briefSrcLocGHC.Internal.Stack prettySrcLoc mkCallSitenewInvocationFromcallSiteCalleecallSiteCaller callSiteLabelcallSiteSrcLoc CallStackGHC.Internal.Conc.SyncforkIO