> One difficulty is that many of the core type data types, e.g. TyThing,
> are (1) a large mutually recursive graph, and (2) have
> unsafeInterleaveIO thunks which would induce IO action.  So a naive
> Show instance would give infinite output and have lots of side effects.
> There are many data types which could usefully have Show added but
> also many which would be very difficult to.

Ah, yes, this is a very annoying problem. I discovered that when I first wrote
CoreDump: https://github.com/osa1/CoreDump/issues/2

I don't have solution to this yet.

2015-10-19 21:59 GMT-04:00 Edward Z. Yang <ezy...@mit.edu>:
> Excerpts from Ömer Sinan Ağacan's message of 2015-10-19 14:18:41 -0700:
>> I was wondering what would be the cost of adding Show instances. Would that
>> mean significantly increased compile times? Or significantly bigger GHC
>> binaries? If that's the case, could we enable Show instances with some
>> arguments so that we can enable/disable it by modifying mk/build.mk?
>
> One difficulty is that many of the core type data types, e.g. TyThing,
> are (1) a large mutually recursive graph, and (2) have
> unsafeInterleaveIO thunks which would induce IO action.  So a naive
> Show instance would give infinite output and have lots of side effects.
> There are many data types which could usefully have Show added but
> also many which would be very difficult to.
>
> Edward
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to