module Debug.FileLocation
(debug, debugM, debugMsg, dbg, dbgMsg, trc, ltrace, ltraceM, strace, traceId)
where
import Language.Haskell.TH.Syntax
import Debug.Util
import Debug.Trace (trace)
import FileLocation.LocationString (locationToString)
dbg :: Q Exp
dbg = do
loc <- qLocation
let pre = "DEBUG: " ++ (locationToString loc)
[|(\x -> ltrace pre x)|]
dbgMsg :: String -> Q Exp
dbgMsg msg = do
loc <- qLocation
let pre = "DEBUG: " ++ (locationToString loc) ++ ' ' : msg
[|(\x -> ltrace pre x)|]
trc :: String -> Q Exp
trc str = do
loc <- qLocation
let prefix = "TRACE: " ++ (locationToString loc) ++ " "
[|trace (prefix ++ str)|]
dbgM :: Q Exp
dbgM = do
loc <- qLocation
let prefix = "DEBUG: " ++ (locationToString loc) ++ " "
[|(\x -> ltraceM (prefix ++ show x) x)|]