unwords does not participate in list fusion
I'm not quite sure how far this can go, but unwords
should almost certainly be a good consumer or a good producer. Currently it is neither. Making it a good consumer is trivial, given concatMap
that fuses:
unwords = tail . concatMap (' ':)
Alternatively, we should be able to make it a good producer without too much trouble, I think. I have my doubts about making it both.