<div dir="auto"><div class="gmail_extra" dir="auto"><div class="gmail_quote">On Feb 10, 2018 11:53 AM, "Kris Nuttycombe" <<a href="mailto:kris.nuttycombe@gmail.com">kris.nuttycombe@gmail.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="quoted-text"></div><div><div class="quoted-text"><br class="m_-5248814093511849301gmail-Apple-interchange-newline">On Fri, Feb 9, 2018 at 7:07 PM, David Feuer<span> </span><span dir="ltr"><<a href="mailto:david.feuer@gmail.com" style="color:rgb(17,85,204)" target="_blank">david.feuer@gmail.com</a>></span><span> </span><wbr>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Other another bike-shed color:</div><div dir="auto"><br></div><div dir="auto"><div dir="auto" style="font-family:sans-serif">traceWith :: (a -> String) -> a -> a</div><div dir="auto" style="font-family:sans-serif">traceWith f a = trace (f a) a</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif"><div dir="auto" style="color:rgb(34,34,34);font-family:sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">traceShowWith :: Show b => (a -> b) -> a -> a</div><div dir="auto" style="color:rgb(34,34,34);font-family:sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">traceShowWith f = traceWith (show . f)</div></div></div></div></blockquote><div><br></div></div><div>Is there some situation where the `Show String` instance wouldn't be in scope? If `b` is `String` it works out just fine, so the first definition you gave here seems superfluous.</div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">If the strings have non-ASCII characters, show will mangle them.</div><div class="gmail_extra" dir="auto"></div></div>