Re-do (again) the handling of binders in Template Haskell
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 16 Jun 2011 13:23:08 +0000 (14:23 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 16 Jun 2011 13:23:08 +0000 (14:23 +0100)
commite3dcc0d5a9f805518f004a9ef42b3405b013a083
tree7f4ea1edd1c003f4543c9848ee2306b0091f5cac
parent9d5e65c4b10157b94a9745b2bfbe51f4e6fc616f
Re-do (again) the handling of binders in Template Haskell

See the long Note [Binders in Template Haskell] in Convert.lhs
which explains it all.  This patch fixes Trac #5037.

The key change is that NameU binders (ones made up by newName in
Template Haskell, and by TH quotations) now make Exact RdrNames again,
rather than making RdrNames with heavily encoded OccNames like x[03cv].
(This encoding is what was making #5037 fail.)
compiler/hsSyn/Convert.lhs
compiler/iface/IfaceEnv.lhs
compiler/rename/RnBinds.lhs
compiler/rename/RnEnv.lhs
compiler/rename/RnPat.lhs