summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-haskell/file-location/metadata.xml')
-rw-r--r--dev-haskell/file-location/metadata.xml39
1 files changed, 39 insertions, 0 deletions
diff --git a/dev-haskell/file-location/metadata.xml b/dev-haskell/file-location/metadata.xml
new file mode 100644
index 000000000000..20341f110dbd
--- /dev/null
+++ b/dev-haskell/file-location/metadata.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <longdescription>
+ Common debugging/error/exception functions that give file location information
+
+ &gt; $(err "OH NO!")
+ &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 ("Caught " ++ show (e :: AException))
+ &gt;
+ &gt; 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>