public override bool Equals(object obj) { if (this == obj) return true; if (!(obj is Decl)) return false; // A() and label A are different if (obj is ContextGetterDecl) return false; return name.Equals(((Decl)obj).name); } }