Previously, we (optionally) used unsafeCoerce to avoid passing
allocating functions to divide or choose, presumably because
those might not inline enough to make things efficient. But we should
be able to solve that problem, at least most of the time, by gathering
up all the relevant conversions in one spot so they're likely to
fuse with from or from1. That's the theory, anyway. I don't
know if it will hold up in practice.
Previously, we (optionally) used
unsafeCoerce
to avoid passing allocating functions todivide
orchoose
, presumably because those might not inline enough to make things efficient. But we should be able to solve that problem, at least most of the time, by gathering up all the relevant conversions in one spot so they're likely to fuse withfrom
orfrom1
. That's the theory, anyway. I don't know if it will hold up in practice.