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