<div dir="auto">And I guess it would be bad to use Show, but make custom instances for the problematic types that did not loop?<div dir="auto"><br></div><div dir="auto">Alan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 18 Mar 2017 9:44 pm, "Edward Z. Yang" <<a href="mailto:ezyang@mit.edu">ezyang@mit.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We can't add Show instances for these types because many types<br>
below them, e.g., Type, are cyclic, and would result in infinite<br>
output.<br>
<br>
Perhaps we can add a new type class which a) faithfully represents<br>
the Haskell syntax, but b) can deal with cyclic data.  I think that's<br>
something people would like (extra compilation time not withstanding).<br>
But it sounds annoying to do since the deriving mechanism is not going<br>
to help you.<br>
<br>
Edward<br>
<br>
Excerpts from Tom Sydney Kerckhove's message of 2017-03-18 14:03:48 +0100:<br>
> Dear GHC Devs,<br>
><br>
> I am trying to use GHC as a library but I'm having a lot of trouble with<br>
> understanding what everything means.<br>
> Up to now, I have been able to figure out what to do by reading the<br>
> sources, but it ocured to me that much of my struggles could have been<br>
> mitigated if the relevant types had Show instances.<br>
><br>
> I am specifically talking about the types concerning type checking.<br>
> TypecheckedModule and everything below that.<br>
> I am aware that most of the types have an Outputable instance, but<br>
> there are two problems with that:<br>
><br>
> - 'Outputting' a value requires DynFlags. (yes, I know about pprTrace)<br>
> - These instances are not intended to show the internal structure of a<br>
>   value, but rather a 'human readable' representation of a value.<br>
><br>
> My questions for you:<br>
><br>
> - Is there a reason that there are no derived 'Show' instances for most<br>
>   types?<br>
> - Would you accept a diff that adds these?<br>
><br>
> Thank you for your time.<br>
><br>
______________________________<wbr>_________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div>