Frank Dellaert asks: > test (Instance a1 _) (Instance a2 _) = (a1==a2) > > will this be implemented efficiently ? I.e. will it check first whether the > >pointers happen to be the same, and only then do a full Eq comparison ?
No, otherwise you might also expect that the following test' function: test' :: String -> Bool test' s = (s==s) always returns True, without considering its actual argument s. But this is not the way of it, (==) evaluates the two strings to be compared as far as necessary for this comparison. For example: test' "abc" = True but: test' undefined = undefined If you really need something like pointer equality, you might want to consider the stable names of: @inproceedings{ jones99stretching, author = "Simon L. Peyton Jones and Simon Marlow and Conal Elliott", title = "Stretching the Storage Manager: Weak Pointers and Stable Names in Haskell", booktitle = "Implementation of Functional Languages", pages = "37-58", year = "1999", url = "citeseer.nj.nec.com/jones99stretching.html" } -- Janis Voigtlaender http://wwwtcs.inf.tu-dresden.de/~voigt/ mailto:[EMAIL PROTECTED] _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell