returning to cost of Integer

Bulat Ziganshin bulat.ziganshin at
Wed Aug 2 18:12:15 EDT 2006

Hello John,

Thursday, August 3, 2006, 1:25:45 AM, you wrote:

>> evaluated.  If the contents of the constructor itself can be packed into
>> the other 30 bits, then there's no need for a pointer at all.  For 
>> enumerated types, you can use all 31 bits for the tag, since only 1 bit is 
>> required to indicate evaluated/unevaluated and no pointer is needed.

> Not just for enumerated types, but for any constructors that don't have
> any components (independent of other constructors). as in 'Nothing' from
> Maybe could be represented this way.

the main condition is to use some special Int30# type instead of Int#
(which we got used to be 32 bits long). i.e. for the type [Char},
where Char= C# Int30# it will be ok, but for [Int] it will be bad
(i know about Haskell standard, but how many programs relies on 32-bit

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at

More information about the Glasgow-haskell-users mailing list