You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-haskell/file-location/metadata.xml

40 lines
1.3 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>haskell</herd>
<maintainer>
<email>haskell@gentoo.org</email>
</maintainer>
<longdescription>
Common debugging/error/exception functions that give file location information
&gt; $(err &quot;OH NO!&quot;)
&gt;
&gt; 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.
&gt; debug [1,2,3]
&gt;
&gt; DEBUG: [1,2,3]
&gt; [1,2,3]
And The Template Haskell version.
&gt; $(dbg) [1,2,3]
&gt;
&gt; DEBUG main:Main main.hs:1:3 [1,2,3]
&gt; [1,2,3]
Also there is a version of thrwIO that gives location information
&gt; ($(thrwIO) $ AException) `catch` \e -&gt; putStrLn (&quot;Caught &quot; ++ show (e :: AException))
&gt;
&gt; Caught AException &quot;main:Main test/main.hs:25:6&quot;
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>
</pkgmetadata>