Is there a change in strictness with the following transformation?&nbsp; It seems like scanr should be a good consumer and a good producer, intuitively.<br><br>scanrFB :: (a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; (b -&gt; c -&gt; c) -&gt; c -&gt; c<br>
scanrFB f x ls c n = snd (foldr (\ x (b, bs) -&gt; let b&#39; = f x b in (b&#39;, b&#39; `c` bs)) (x, n) ls)<br><br>{-# RULES<br clear="all">&quot;scanr&quot; [~1] forall f x l . scanr f x l = build (scanrFB f x l);<br>-# RULES}<br>
-- <br>Louis Wasserman<br><a href="mailto:wasserman.louis@gmail.com">wasserman.louis@gmail.com</a><br>