
#8220: Macros / functions for source location -------------------------------------+------------------------------------ Reporter: wojteknar | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by wojteknar): My original use case is a Parsec parser, many functions like this: {{{ magic = word16 stream_MAGIC <?> "magic" version = word16 stream_VERSION <?> "version" nullMark = word8 tc_NULL*> pure () <?> "nullMark" }}} Being only human, I often forget to match the <?> "label" with the function name. I believe the outermost enclosing function would be best. Also, I noticed that some exceptions are able to print the function name, but this is probably the innermost. {{{ oneForOne 1 = 1 main = print $ oneForOne 2 -- Prints -- Exception: exception-test.hs:10:1-15: Non-exhaustive patterns in function oneForOne }}} Admittedly, this is not a feature one cannot live without, but it is very handy in some situations. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8220#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler