On Sep 19, 2006, at 3:28 PM, Neil Mitchell wrote:

Hi,

Welcome back!  Since Data.Bits is not defined in the Haskell 1998
standard, are we free to change the implementation of Data.Bits?

No! If you do things like this, randomly changing the semantics of
functions, people will come round to your house with burning pitch
forks!

Or, if they reside across the Water, they might simply refuse to use my program. The problem with Data.Bits.rotate, rotateL and rotateR for Integers is redundancy: they are the same functions as shift, shiftL and shiftR respectively. The unfortunate (and possibly buggy) consequence for the unwary might be an unexpected change in the operation of a function that uses rotate, rotateL or rotateR over types in class Num when their Int32's have been promoted to Integers to cover overflow. Otherwise it would be much easier to simply leave it as is (for an array of doubles, where bitwise operations are actually performed arithmetically, rotations would be difficult).

If you want to have functions with new semantics, its probably a good
idea to give them new names, or do something else to stop changing
existing programs.

Certainly. The reason I asked about Data.Bits was that it is not defined in the Haskell98 standard--I couldn't add IntegerRotate to Prelude, and Data.Bits is a library. In any case, I think the general response is that (a) specious idea or (b) already done in other libraries.

-Pete
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to