Module DA.Stack¶
Data Types¶
data SrcLoc
data CallStack
Type of callstacks constructed automatically from
HasCallStack
constraints.Use
callStack
to get the current callstack, and usegetCallStack
to deconstruct theCallStack
.
- type HasCallStack
= IP "callStack" CallStack
Request a
CallStack
. Use this as a constraint in type signatures in order to get nicer callstacks for error and debug messages.For example, instead of declaring the following type signature:
myFunction : Int -> Update ()
You can declare a type signature with the
HasCallStack
constraint:myFunction : HasCallStack => Int -> Update ()
The function
myFunction
will still be called the same way, but it will also show up as an entry in the current callstack, which you can obtain withcallStack
.Note that only functions with the
HasCallStack
constraint will be added to the current callstack, and if any function does not have theHasCallStack
constraint, the callstack will be reset within that function.
Functions¶
- prettyCallStack
-
Pretty-print a
CallStack
.
- getCallStack
: CallStack -> [(Text, SrcLoc)]
Extract the list of call sites from the
CallStack
.The most recent call comes first.
- callStack
: HasCallStack => CallStack
Access to the current
CallStack
.