Last updated on February 29, 2016 by Jean-Philippe Bernardy Abstract In this post I explain how to write Haskell code in a way that lets the programmer control when fusion happens. The key idea is to polarize the type to deforest. Explicit Fusion From a sufficiently high-level point of view, the idea behind short-cut fusion is to: Convert functions on Lists to a representation which does not invol