file-location-0.4.2: file-location.cabal
Name: file-location
Version: 0.4.2
Synopsis: common functions that show file location information
Homepage: https://github.com/gregwebs/FileLocation.hs
License: BSD3
License-file: LICENSE
Author: Greg Weber
Maintainer: greg@gregweber.info
Category: Development
Build-type: Simple
Cabal-version: >=1.6
Description:
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
Source-Repository head
type: git
location: https://github.com/gregwebs/FileLocation.hs
Library
Exposed-modules: FileLocation,
Debug.FileLocation,
Control.Exception.FileLocation,
Debug.Util,
FileLocation.LocationString
-- Packages needed in order to build this package.
Build-depends: base >= 4 && < 5
, template-haskell
, transformers >= 0.2 && < 0.3