fromList creates a bunch of churn at the root of the structure. If we give up on list fusion (which only helps when the argument is a good producer, and doesn't help enough), we can easily built a forest from chunks of, say, eight elements each. Then just finish up the job. When the argument is a good producer, we could try to fuse with it a bit more cleverly; I'm not sure how far the optimizer will let us take that.
fromListcreates a bunch of churn at the root of the structure. If we give up on list fusion (which only helps when the argument is a good producer, and doesn't help enough), we can easily built a forest from chunks of, say, eight elements each. Then just finish up the job. When the argument is a good producer, we could try to fuse with it a bit more cleverly; I'm not sure how far the optimizer will let us take that.