• simonpj's avatar
    [project @ 2004-12-23 09:07:30 by simonpj] · e12e0bb7
    simonpj authored
              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'.
Convert.lhs 16.3 KB