Stefan O'Rear wrote:
On Wed, Jul 11, 2007 at 08:16:50PM +0100, Andrew Coppin wrote:
Of course, sometimes you purposely write code which you know is going to
overflow and wrap round in a specific way. But frequently you *don't* want
this behaviour - and I wish there were some pragma or something to make
this be checked. AFAIK, most CPU types give you an efficient way to testing
for such conditions...
Indeed. I beleive that Int should be removed from the Prelude. People
who need the algebraic properties of rings modulo 2^(2^n) can use the
sized integral types from Data.Int and Data.Word; people who want speed
and can satisfy the proof obligations can use Int and Word from the same
modules. Everyone else can use Integer, which should be made shorter than
Int for obvious psychological reasons.
Do we really want to do that?
I mean, make Haskell in general 2 orders of magnitude slower (and heaven
knows how many orders of magnitude more RAM hungry) for any program
using more than a handful of integers?
Personally, I'd prefer a way to just throw an exception when a numeric
overflow happens. (Probably only for test purposes - so maybe a compiler
flag?)
How about the floating-point types? What do they currently do?
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe