On Fri, Mar 8, 2013 at 9:39 AM, Simon Peyton-Jones <simonpj@microsoft.com> wrote:

What I would like to see is something like:

HsApp (HsApp (HsApp (HsVar "foldl'") (HsVar "+")) (HsLit 0)) (HsVar "xs")

We could derive ‘Show’ on everything but that would generate a LOT of new code, that would seldom be used.  Also ‘Show’ doesn’t pretty-print so the result would be illegible.

If plugins could be used before the conversion to Core, such a plugin might be a tidy way to workaround the issue of bloating GHC's binary size with all that Show code.
 
This previous email thread http://www.haskell.org/pipermail/glasgow-haskell-users/2012-March/022076.html seems relevant, and Marlow's comment there makes it sound like a pretty easy change.