Comparing StableNames of different type

Emil Axelsson emax at chalmers.se
Fri Aug 24 11:18:05 CEST 2012


2012-08-24 11:08, Simon Marlow skrev:
> On 24/08/2012 07:39, Emil Axelsson wrote:
>> Hi!
>>
>> Are there any dangers in comparing two StableNames of different type?
>>
>>    stEq :: StableName a -> StableName b -> Bool
>>    stEq a b = a == (unsafeCoerce b)
>>
>> I could guard the coercion by first comparing the type representations,
>> but that would give me a `Typeable` constraint that would spread
>> throughout the code.
>
> I think that's probably OK.

OK, good! How about putting this function in the library so that people 
don't have to hack it up themselves?



> It should be safe even if the types are
> different, but I presume you expect the types to be the same, since
> otherwise the comparison would be guaranteed to return False, right?

No, I want to do observable sharing of heterogeneously typed expressions 
which means I will be comparing expressions of different type.

/ Emil



More information about the Glasgow-haskell-users mailing list