<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>haskell@gentoo.org</email> <name>Gentoo Haskell</name> </maintainer> <longdescription> Common debugging/error/exception functions that give file location information > $(err "OH NO!") > > main:Main main.hs:16:1 OH NO! Notice how it displays package:module file:line:character It exposes the functions err (error), undef (undefined), and trc (Debug.Trace.trace). All of these behave the same as their normal counterpart but also spit out a location. Here is my favorite helper, debug, which is like trace but just show the value. > debug [1,2,3] > > DEBUG: [1,2,3] > [1,2,3] And The Template Haskell version. > $(dbg) [1,2,3] > > DEBUG main:Main main.hs:1:3 [1,2,3] > [1,2,3] Also there is a version of thrwIO that gives location information > ($(thrwIO) $ AException) `catch` \e -> putStrLn ("Caught " ++ show (e :: AException)) > > Caught AException "main:Main test/main.hs:25:6" See module for a listing of all the functions with short descriptions, and the homepage for some more examples https://github.com/gregwebs/ErrorLocation.hs </longdescription> <upstream> <remote-id type="github">gregwebs/FileLocation.hs</remote-id> </upstream> </pkgmetadata>