Uniquable RdrName instance
Jan Stolarek
jan.stolarek at p.lodz.pl
Mon Jun 16 11:45:03 UTC 2014
Hi all,
I just found myself in the need of Uniquable instance for RdrName. I'm surprised that such
instance does not exist already because other datatypes like Name or OccName already have
Uniquable instances. So, is there a reason why Uniquable instance for RdrName does not exist
already (other than "it wasn't needed")? How should such an instance look like? I made an
attempt:
rdrNameUnique :: RdrName -> Unique
rdrNameUnique (Unqual occName) = getUnique occName
rdrNameUnique (Qual _ occName) = getUnique occName
rdrNameUnique (Orig _ occName) = getUnique occName
rdrNameUnique (Exact name ) = getUnique name
But I suspect this might be wrong:
- cases 1 and 4 simply return a Unique for the OccName/Name stored inside RdrName. I think this
will assign the same Unique to RdrName and corresponding OccName/Name. Is this allowed?
- cases 2 and 3 ignore the Module stored inside RdrName. Again, this assigns the RdrName with a
Unique identical to OccNames stored inside it.
Help appreciated.
Janek
More information about the ghc-devs
mailing list