semantics of Eq instance for Var.Var (was: is shadowing allowed in CoreSyn?)
rl at cse.unsw.edu.au
Thu Feb 17 09:11:44 CET 2011
On 17/02/2011, at 00:33, Adam Megacz wrote:
> Max Bolingbroke <batterseapower at hotmail.com> writes:
>>> Hrm, isn't it bad for two Var's with different fields to have the same
>>> uniq? Because if they have the same uniq, they will be Eq-equal.
>> Just because two vars are eq-equal does not mean that they refer to
>> the "same thing".
> Hrm, okay, thanks for clearing this up... but, in that case, what
> exactly does it mean for two Vars to be Eq-equal?
Two Vars are Eq-equal iff they could shadow each other. That is, two Vars with the same Unique can't be in scope at the same time. So to compare two in-scope Vars, you just have to compare their Uniques. That's all (==) does.
More information about the Cvs-ghc