debugtracehelpers Re: traceM and traceShowM

I have this and a couple other handy functions in
DebugTraceHelpers:
http://patch-tag.com/r/tphyahoo/DebugTraceHelpers/snapshot/current/content/p...
hackage:
http://hackage.haskell.org/packages/archive/DebugTraceHelpers/0.12/doc/html/...
2009/10/16 Martijn van Steenbergen
Hello,
I propose the addition of the following two functions to module Debug.Trace:
traceM :: Monad m => String -> m () traceM msg = trace msg (return ())
traceShowM :: (Show a, Monad m) => a -> m () traceShowM = traceM . show
These functions allow tracing in any do-block. I often define them myself; I think they are useful in general.
Deadline: 23 October 2009.
Martijn. _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries

These woudl be much more useful if they flushed the output handle
after each message. Then you know your trace messages will be
displayed/written to a file.
On Mon, Oct 19, 2009 at 1:51 PM, Thomas Hartman
I have this and a couple other handy functions in
DebugTraceHelpers:
http://patch-tag.com/r/tphyahoo/DebugTraceHelpers/snapshot/current/content/p...
hackage:
http://hackage.haskell.org/packages/archive/DebugTraceHelpers/0.12/doc/html/...
2009/10/16 Martijn van Steenbergen
: Hello,
I propose the addition of the following two functions to module Debug.Trace:
traceM :: Monad m => String -> m () traceM msg = trace msg (return ())
traceShowM :: (Show a, Monad m) => a -> m () traceShowM = traceM . show
These functions allow tracing in any do-block. I often define them myself; I think they are useful in general.
Deadline: 23 October 2009.
Martijn. _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I don't know why people use trace this way instead of in the reverse form:
debug = flip trace
this way I can isolate debug code in the right from normal code:
main= do
a <- getChar
b <- getChar `debug` ("a="++ show a)
let c= a+b `debug` ("b="++ show b)
...
and so on.
I saw it for the first time in the DrIFt libtary.
2009/10/20 Justin Bailey
These woudl be much more useful if they flushed the output handle after each message. Then you know your trace messages will be displayed/written to a file.
On Mon, Oct 19, 2009 at 1:51 PM, Thomas Hartman
wrote: I have this and a couple other handy functions in
DebugTraceHelpers:
http://patch-tag.com/r/tphyahoo/DebugTraceHelpers/snapshot/current/content/p...
hackage:
http://hackage.haskell.org/packages/archive/DebugTraceHelpers/0.12/doc/html/...
2009/10/16 Martijn van Steenbergen
: Hello,
I propose the addition of the following two functions to module
Debug.Trace:
traceM :: Monad m => String -> m () traceM msg = trace msg (return ())
traceShowM :: (Show a, Monad m) => a -> m () traceShowM = traceM . show
These functions allow tracing in any do-block. I often define them
myself; I
think they are useful in general.
Deadline: 23 October 2009.
Martijn. _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Alberto G. Corona
-
Justin Bailey
-
Thomas Hartman