[Haskell-cafe] Re: (flawed?) benchmark : sort

Adrian Hey ahey at iee.org
Thu Mar 13 06:15:13 EDT 2008

Aaron Denney wrote:
>> so do you really seriously consider the possibility that
>> this might not hold in your Int related code?
>> if (x==y) then f x else g x y
>> might not mean the same as..
>> if (x==y) then f y else g x y
> In Int code, of course not, because I know the types, and I know the
> behaviour of (==) on Ints.  But f is specialized to work on Ints, isn't
> it, so it's reasonable to know what semantics (==) has for Ints, and
> depend on them?

Why are Ints special in this way? Couldn't you use say exacly the same
about any type (just substitute type "X" of your choice for "Int")

IMO if your going to define a type X which is intended to be an Eq
instance you should always ensure, one way or another that all
exposed primitives that operate on that type respect equality, as
defined by == for the instance method. (And hence more complex
functions built on those primitives do too).

Just MO, the report doesn't make this clear 1 way or another AFAICS.

Adrian Hey

More information about the Haskell-Cafe mailing list