
| I'd be happy to be proven wrong in this, of course!-) I had the feeling | that there'd been some recent work on all this and, indeed, reddit has: | | http://www.reddit.com/r/haskell/comments/8mbar/finding_the_needle_stack_trac... | hc_pdf/ Sorry I've been very buried recently. Some brief rejoinders to this thread. - Yes, Tristan's paper "Finding the needle" http://research.microsoft.com/~simonpj/papers/stack-trace/DebugTraces.pdf describes his intern work, and represents a good stab at the problem. I think he'd be very interested in feedback. Is this the best way to tackle the problem? Are there better alternatives? - It's not in GHC HEAD, because of the unresolved issues that are discussed towards the end of the paper. - Template Haskell does let you find the current source location, thus: loc :: Q Exp loc = do { l <- location ; lift (loc_module l ++ ":" ++ show (loc_start l)) } Now you can say (error $(loc)), and you'll get the source location of the call to $loc. So that's pretty close to what was originally asked for. Simon