Improving containers library

Axel Simon Axel.Simon at in.tum.de
Wed Mar 3 12:58:35 EST 2010


On 03.03.2010, at 17:30, Milan Straka wrote:

> Any easy way of comparing pointers? I mean, if I have something like
> Tree a = N | B (Tree a) a (Tree a)
> and have (l::Tree a) and (r::Tree a), can I ask about the "physical
> equality"?

You can! Despite the names appearing in the following code, the  
following is safe:

-- | Equality on pointers.
ptrEqual :: a -> a -> Bool
ptrEqual x y = unsafePerformIO $ do
   nx <- makeStableName x
   ny <- makeStableName y
   return (nx==ny)

Axel


More information about the Libraries mailing list