Typically, since lists are lazy and Repa arrays are strict.
If you were unable to plan a lazy crawl of the list, for example
map f . map g
you pay the cost O (1) for each value, leaving there an intermediate (lazy) cell cons.
If you cannot merge the same bypass in a strict sequence, you will pay at least O (n) for the value to allocate the string intermediate array.
In addition, since fusion manages your code in an unrecognizable Stream data type, to improve analysis, you can leave the code with too many constructors and other overheads.
source share