On Mon, May 23, 2011 at 4:29 PM, Johan Tibell <johan.tibell@gmail.com> wrote:
On Mon, May 23, 2011 at 4:18 PM, Sebastian Fischer <fischer@nii.ac.jp> wrote:
> Because unboxing can not be used for the polymorphic value component in the
> strict structure and there is no way to tell GHC to unbox the specific
> instantiation `IntMap (Lazy a)`?

Exactly. This would amount to code generation in the module defining
IntMap (Lazy a), similar to how C++ implements template.

I see. Given that library authors currently work around the lack of this optimization it's probably a Good Thing to add it to GHC. But that is a separate topic as it seems impractical to extend GHC before containers gets updated.

Sebastian