[Haskell-cafe] Number overflow [was: Strange results when trying to
create large Bool arrays.]
Andrew Coppin
andrewcoppin at btinternet.com
Wed Jul 11 15:46:29 EDT 2007
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?
More information about the Haskell-Cafe
mailing list