Need help interpreting renamer trace output

Philip K.F. Hölzenspies p.k.f.holzenspies at utwente.nl
Wed Mar 6 11:29:20 CET 2013


Erratum; Of course, I meant that I had expected the different
occurrences of 'x' to have the same uniques. Similarly, the different
occurrences of 'y'. I did *not* expect 'x' and 'y' to have the same
uniques.

Ph.



On Wed, 2013-03-06 at 10:18 +0100, Philip K.F. Hölzenspies wrote:
> Dear GHC-ers,
> 
> I'm looking into the inerts of the renamer and I'm trying to get a feel
> for where things are bound. I thought it would be useful to have a look
> at how the renamer works on something known, so I compiled the following
> program (with HEAD):
> 
> 
> class Foo x where
>   type FooTy x y
>   foo :: x t -> FooTy x t
> instance Foo [] where
>   type FooTy [] a = a
>   foo (x:xs) = x
> 
> main = print "Done"
> 
> 
> In the output of -ddump-rn-trace, I see this around the declaration of
> the class Foo:
> 
> bhtv [x, y]
>      []
>      ([(v1A, x), (v1C, y)], [(afy, x), (afz, y)])
> bhtv [t]
>      []
>      ([(v1A, x), (vjW, t)], [(afy, x), (afA, t)])
> rnTycl [(class Foo x where
>            type family FooTy x y
>            foo :: x t -> FooTy x t,
>          [(rfv, FooTy)])]
>        [REC
>            class Foo x where
>              type family FooTy x y
>              foo :: x t -> FooTy x t]
> 
> 
> I had expected that the 'x' and 'y' would have had the same uniques. The
> last tuple of bhtv is a LocalRdrEnv, which is (OccEnv Name, NameSet).
> Can someone explain to me the uses of both of these parts and why the
> names mentioned in each have different uniques?
> 
> Regards,
> Philip
> 
> 
> 
> 
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users





More information about the Glasgow-haskell-users mailing list