А length0 - она вообще энергичная? Там не может получиться, что компилятор построит мега-санки I# (...(((0# +# 1#) +# 1#) + 1#)...), которые влезли в память (в отличие от length''' только потому, что боксированные данные занимают вдвое больше места)?
Как насчёт заведомо энергичного length00 = I# . foldl' (const . inc) 0# where inc h = h +# 1#
no subject
Там не может получиться, что компилятор построит мега-санки
I# (...(((0# +# 1#) +# 1#) + 1#)...)
, которые влезли в память (в отличие от length''' только потому, что боксированные данные занимают вдвое больше места)?Как насчёт заведомо энергичного
length00 = I# . foldl' (const . inc) 0# where inc h = h +# 1#