Maybe you could use stable names for this: 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." 2009/1/3 Xie Hanjian <[email protected]>: > 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 > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
