
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-Stable... "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