[project @ 2004-12-23 09:07:30 by simonpj]
---------------------------------
Template Haskell: names again
---------------------------------
On 2 Dec 04 I made this commit (1.58 in Convert.lhs)
Fix a Template Haskell bug that meant that top-level names created
with newName were not made properly unique.
But that just introduced a new bug! THe trouble is that names created by
newName are NameUs; but I was *also* using NameU for names of free varaibles,
such as the 'x' in the quoted code here
f x = $( g [| \y -> (x,y) |])
But when converting to HsSyn, the x and y must be treated diffferently.
The 'x' must convert to an Exact RdrName, so that it binds to the 'x' that's
in the type environment; but the 'y' must generate a nice unique RdrName.
So this commit adds NameL for the lexically-scoped bindings like 'x'.