Maybe you could use stable names for this: 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." 2009/1/3 Xie Hanjian <jan.h.xie@gmail.com>:
Hi,
I tried this in ghci:
Prelude> 1:2:[] == 1:2:[] True
Does this mean (:) return the same object on same input, or (==) is not for identity checking? If the later is true, how can I check two object is the *same* object?
Thanks Jan
-- jan=callcc{|jan|jan};jan.call(jan)
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe