[Haskell] sizeFM type

Wolfgang Jeltsch wolfgang at jeltsch.net
Mon Apr 26 21:58:53 EDT 2004


Am Montag, 26. April 2004 20:45 schrieb Don Groves:
> [...]

> Hello, Haskell newbie here.
>
> Some languages handle the Int/Integer question automatically,
> determined by the size of the integer in question.  Int is used
> until the integer excedes what the underlying architecture can
> handle, then the switch is made to Integer (bignum).  Is this
> something that could be handled similarly by the Haskell compiler
> without violating anything?  Just thinking out loud...
> --
> Don Groves

Hello Don,

strictly speaking, you cannot choose between Int or Integer depending on the 
actual value of your number because the type of an expression has to be known 
at compile time while the exact value is mostly known only at runtime.

But you can have a type which uses a "small int" representation for small 
numbers and a "big int" representation for big numbers.  This is probably 
what you mean, and this is AFAIK exactly what at least GHC's Integer does.  
So GHC's Integer uses a fast representation for small numbers.  But a program 
still needs time for testing if a given Integer is represented the "small" or 
the "big" way, it needs time for testing, if a calculation results in a 
number representable by the "small" representation etc.  So Integer will 
always be a bit slower than Int.

Wolfgang



More information about the Haskell mailing list