[Haskell-cafe] Suggestions for simulating Object ID

Jan Christiansen jac at informatik.uni-kiel.de
Tue Jun 30 14:18:49 EDT 2009


Hi,

On 30.06.2009, at 11:55, Hemanth Kapila wrote:

> Can some one please suggest something on simulating some sort of  
> "object-Ids" in Haskell?
>
> I mean, something like the following relation will hold:
> > a1 == a2  =  (objectID a1) == (objectID a2)

I am not quite sure but perhaps Stable Names are also interesting for  
you.

They only provide the following:

  mkStableName x == mkStableName y => x == y

http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-Mem-StableName.html
"Stable names are a way of performing fast (O(1)), not-quite-exact  
comparison between objects.

Stable names solve the following problem: suppose you want to build a  
hash table with Haskell objects as keys, but you want to use pointer  
equality for comparison; maybe because the keys are large and hashing  
would be slow, or perhaps because the keys are infinite in size. We  
can't build a hash table using the address of the object as the key,  
because objects get moved around by the garbage collector, meaning a  
re-hash would be necessary after every garbage collection."

Cheers, Jan


More information about the Haskell-Cafe mailing list