Why it's not the default (or the only case)?
I don't have a test case to make experiments, but intuitively unboxing
strict fields should be an obvious advantage in most cases. A record
of Bools or Ints - why allocate each separately? I guess they are more
often examined directly than passed further (which needs repacking).
When somebody uses them, he tells that they are "strict parts of the
value" rather than independent objects attached.
Instead of making repacking cheaper, an optimizing GHC should aim at
avoiding it at all, by e.g. passing the unboxed value directly to a
worker of a strict function if it's not inlined. A lazy function will
receive a thunk with the whole selection code anyway.
--
__("< Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
\__/ GCS/M d- s+:-- a23 C+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-