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 Ints?) -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users