Skip to content

Instances of Read on bounded integral types should fail on overflow

The behaviour of the instances of Read on bounded integral types in H98 is rather unfortunate:

> read "33333333333333333333333333333" :: Int -3520117339065068203

The behaviour is similar for types in Data.Int and Data.Word.

It would be much better if such instances were to detect wraparound errors, and throw an exception. Having parsers silently do the wrong thing is rather at odds with the language's goal of safety.

I will be happy to provide a sample implementation that does the right thing, upon request.

Trac metadata
Trac field Value
Version
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component HaskellPrime
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information