Hoogle Search
Within LTS Haskell 24.50 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
base GHC.Exception CallStacks are a lightweight method of obtaining a partial call-stack at any point in the program. A function can request its call-site with the HasCallStack constraint. For example, we can define
putStrLnWithCallStack :: HasCallStack => String -> IO ()
as a variant of putStrLn that will get its call-site and print it, along with the string given as argument. We can access the call-stack inside putStrLnWithCallStack with callStack.>>> :{ putStrLnWithCallStack :: HasCallStack => String -> IO () putStrLnWithCallStack msg = do putStrLn msg putStrLn (prettyCallStack callStack) :}Thus, if we call putStrLnWithCallStack we will get a formatted call-stack alongside our string.>>> putStrLnWithCallStack "hello" hello CallStack (from HasCallStack): putStrLnWithCallStack, called at <interactive>:... in interactive:Ghci...
GHC solves HasCallStack constraints in three steps:- If there is a CallStack in scope -- i.e. the enclosing function has a HasCallStack constraint -- GHC will append the new call-site to the existing CallStack.
- If there is no CallStack in scope -- e.g. in the GHCi session above -- and the enclosing definition does not have an explicit type signature, GHC will infer a HasCallStack constraint for the enclosing definition (subject to the monomorphism restriction).
- If there is no CallStack in scope and the enclosing definition has an explicit type signature, GHC will solve the HasCallStack constraint for the singleton CallStack containing just the current call-site.
-
base GHC.Exception This is thrown when the user calls error. The first String is the argument given to error, second String is the location.
pattern
ErrorCall :: String -> ErrorCallbase GHC.Exception No documentation available.
ErrorCallWithLocation :: String -> String -> ErrorCallbase GHC.Exception No documentation available.
errorCallException :: String -> SomeExceptionbase GHC.Exception No documentation available.
errorCallWithCallStackException :: String -> CallStack -> SomeExceptionbase GHC.Exception No documentation available.
fromCallSiteList :: [([Char], SrcLoc)] -> CallStackbase GHC.Exception Convert a list of call-sites to a CallStack.
getCallStack :: CallStack -> [([Char], SrcLoc)]base GHC.Exception Extract a list of call-sites from the CallStack. The list is ordered by most recent call.
prettyCallStack :: CallStack -> Stringbase GHC.Exception Pretty print a CallStack.
prettyCallStackLines :: CallStack -> [String]base GHC.Exception No documentation available.