Proposal: Debug.Trace.traceWith
Michael Sloan
mgsloan at gmail.com
Sat Feb 10 14:48:21 UTC 2018
I often define
tracer prefix x = trace (prefix ++ ": " ++ show x) x
A bit arbitrary with the choice of ": ", but quite convenient. The with
variant would be
tracerWith prefix f x = trace (prefix ++ ": " ++ show (f x)) x
On Feb 9, 2018 5:09 PM, "Kris Nuttycombe" <kris.nuttycombe at gmail.com> wrote:
When using Debug.Trace for debugging, a very common operation is to prefer
to trace only some subset or function of an intermediate result. As a
consequence, I propose adding the following function to Debug.Trace:
traceWith :: (Show b) => (a -> b) -> a -> a
traceWith f a = trace (show $ f a) a
While it's trivial to define, I have found this to be one of the most
useful functions in my trace-based debugging toolkit, hence my proposal
that it be added to base. It generalizes `traceShowId` in a meaningful and
useful fashion.
As this is the first such proposal I've put forth, please let me know if
I'm doing anything wrong with it!
Thanks,
Kris Nuttycombe
_______________________________________________
Libraries mailing list
Libraries at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180210/f1ee0346/attachment.html>
More information about the Libraries
mailing list