Add taggedTrace to Debug.Trace
Yuji Yamamoto
whosekiteneverfly at gmail.com
Wed Jun 6 23:45:04 UTC 2018
Nice to meet you, GHC Developers!
I'm new to contributing to GHC.
Today let me suggest new APIs of the Debug.Trace
<http://hackage.haskell.org/package/base-4.11.1.0/docs/Debug-Trace.html>
module, named:
- taggedTraceShowId :: Show a => String -> a -> a
- taggedTraceWith :: (a -> String) -> String -> a -> a
These are inspired by Elm's Debug.log
<http://package.elm-lang.org/packages/elm-lang/core/5.1.1/Debug#log>
function.
The prefix "tagged" is named after its argument
<https://github.com/elm-lang/core/blob/5.1.1/src/Native/Debug.js#L5>.
I mean, these new APIs prepend a string as a tag to the output by
traceShowId etc.
It helps us recognize what the printed values stand for.
I frequently want such functions and write them manually or copy-and-paste
from the Debug.TraceUtils.
I'm tired of that. That's why I made this suggestion.
*Comparison with the existing solution*
- Debug.TraceUtils
<http://hackage.haskell.org/package/TraceUtils-0.1.0.2/docs/Debug-TraceUtils.html>
:
- Essentially, this suggestion is to add APIs already implemented by
TraceUtils.
- As the document of TraceUtils suggests, we can copy and paste the
functions from its source, but it's still tiresome.
- Combine Debug.Trace.traceShowId with Debug.Trace.trace:
- e.g. trace "Tag" $ traceShowId x
- A bit hard to type.
- trace always prints a newline, which makes it difficult to tell the
tags from the printed value.
After receiving some feedback here, I'm going to submit to
https://github.com/ghc-proposals/ghc-proposals
Thanks in advance!
--
Yuji Yamamoto
twitter: @igrep
GitHub: https://github.com/igrep
GitLab: https://gitlab.com/igrep
Facebook: http://www.facebook.com/igrep
Google+: https://plus.google.com/u/0/+YujiYamamoto_igrep
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20180607/c3c8f7b1/attachment.html>
More information about the ghc-devs
mailing list