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