Copyright | (c) 2018 Kowainik |
---|---|
License | MIT |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Safe Haskell | Safe |
Language | Haskell2010 |
Contains useful functions to work with GHC callstack.
Synopsis
- ownName :: HasCallStack => String
- callerName :: HasCallStack => String
Documentation
ownName :: HasCallStack => String Source #
This function returns the name of its caller function, but it requires
that the caller function has HasCallStack
constraint. Otherwise, it returns
"unknown"
.
>>>
foo :: HasCallStack => String; foo = ownName
>>>
foo
"foo">>>
bar :: HasCallStack => String; bar = foo
>>>
bar
"foo"
callerName :: HasCallStack => String Source #
This function returns the name of its caller of the caller function, but it
requires that the caller function and caller of the caller function have
HasCallStack
constraint. Otherwise, it returns "unkown"
. It's useful for
logging:
>>>
log :: HasCallStack => String -> IO (); log s = putStrLn $ callerName ++ ":" ++ s
>>>
greeting :: HasCallStack => IO (); greeting = log "Starting..." >> putStrLn "Hello!" >> log "Ending..."
>>>
greeting
greeting:Starting... Hello! greeting:Ending...