Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Agda.Utils.CallStack
Synopsis
- data CallStack
- data SrcLoc = SrcLoc {
- srcLocPackage :: [Char]
- srcLocModule :: [Char]
- srcLocFile :: [Char]
- srcLocStartLine :: Int
- srcLocStartCol :: Int
- srcLocEndLine :: Int
- srcLocEndCol :: Int
- getCallStack :: CallStack -> [([Char], SrcLoc)]
- type HasCallStack = ?callStack :: CallStack
- fromCallSiteList :: [([Char], SrcLoc)] -> CallStack
- prettySrcLoc :: SrcLoc -> String
- callStack :: HasCallStack => CallStack
- type CallSiteFilter = CallSite -> Bool
- type CallSite = (SrcFun, SrcLoc)
- type SrcLocCol = Int
- type SrcLocLine = Int
- type SrcLocFile = String
- type SrcFun = String
- type SrcLocModule = String
- type SrcLocPackage = String
- prettyCallSite :: CallSite -> String
- prettyCallStack :: CallStack -> String
- headCallSite :: CallStack -> Maybe CallSite
- truncatedCallStack :: CallStack -> CallStack
- overCallSites :: ([CallSite] -> [CallSite]) -> CallStack -> CallStack
- filterCallStack :: CallSiteFilter -> CallStack -> CallStack
- popnCallStack :: Word -> CallStack -> CallStack
- withNBackCallStack :: HasCallStack => Word -> (CallStack -> b) -> b
- withCurrentCallStack :: HasCallStack => (CallStack -> b) -> b
- withCallerCallStack :: HasCallStack => (CallStack -> b) -> b
Documentation
Constructors
SrcLoc | |
Fields
|
Instances
EmbPrj SrcLoc Source # | |
Pretty CallSite Source # | |
Pretty SrcLoc Source # | |
Generic SrcLoc | |
Show SrcLoc | |
NFData SrcLoc | |
Defined in Control.DeepSeq | |
Eq SrcLoc | |
type Rep SrcLoc | |
Defined in GHC.Generics type Rep SrcLoc = D1 ('MetaData "SrcLoc" "GHC.Stack.Types" "base" 'False) (C1 ('MetaCons "SrcLoc" 'PrefixI 'True) ((S1 ('MetaSel ('Just "srcLocPackage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: (S1 ('MetaSel ('Just "srcLocModule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: S1 ('MetaSel ('Just "srcLocFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]))) :*: ((S1 ('MetaSel ('Just "srcLocStartLine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "srcLocStartCol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "srcLocEndLine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "srcLocEndCol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) |
getCallStack :: CallStack -> [([Char], SrcLoc)] #
type HasCallStack = ?callStack :: CallStack #
fromCallSiteList :: [([Char], SrcLoc)] -> CallStack #
prettySrcLoc :: SrcLoc -> String #
callStack :: HasCallStack => CallStack #
type CallSiteFilter = CallSite -> Bool Source #
Type of a filter for CallSite
type SrcLocLine = Int Source #
Type of a line number of a SrcLoc
type SrcLocFile = String Source #
Type of a filename of a SrcLoc
| e.g. `srcfullAgdaUtilsFoo.hs`
type SrcLocModule = String Source #
Type of the module name of a SrcLoc
| e.g. Foo
type SrcLocPackage = String Source #
Type of the package name of a SrcLoc
| e.g. `Agda-2.…`
prettyCallSite :: CallSite -> String Source #
The same as the un-exported internal function in GHC.Exceptions (prettyCallStackLines)
Prints like: doFoo, called at foo.hs:190:24 in main:Main
prettyCallStack :: CallStack -> String Source #
Pretty-print a CallStack
. This has a few differences from GHC.Stack.prettyCallStackLines
.
We omit the "CallStack (from GetCallStack)" header line for brevity.
If there is only one entry (which is common, due to the manual nature of the HasCallStack
constraint),
shows the entry on one line. If there are multiple, then the following lines are indented.
headCallSite :: CallStack -> Maybe CallSite Source #
Get the most recent CallSite
in a CallStack
, if there is one.
truncatedCallStack :: CallStack -> CallStack Source #
CallStack
comprising only the most recent CallSite
overCallSites :: ([CallSite] -> [CallSite]) -> CallStack -> CallStack Source #
Transform a CallStack
by transforming its list of CallSite
filterCallStack :: CallSiteFilter -> CallStack -> CallStack Source #
Transform a CallStack
by filtering each CallSite
popnCallStack :: Word -> CallStack -> CallStack Source #
Pops n entries off a CallStack
using popCallStack
.
Note that frozen callstacks are unaffected.
withNBackCallStack :: HasCallStack => Word -> (CallStack -> b) -> b Source #
withCurrentCallStack :: HasCallStack => (CallStack -> b) -> b Source #
withCallerCallStack :: HasCallStack => (CallStack -> b) -> b Source #