Stream fusion: From lists to streams to nothing at all

D Coutts, R Leshchinskiy, D Stewart - ACM SIGPLAN Notices, 2007 - dl.acm.org
This paper presents an automatic deforestation system, stream fusion, based on equational
transformations, that fuses a wider range of functions than existing short-cut fusion systems …

Shortcut fusion for accumulating parameters & zip-like functions

J Svenningsson - ACM SIGPLAN Notices, 2002 - dl.acm.org
We present an alternative approach to shortcut fusion based on the function unfoldr,.
Despite its simplicity the technique can remove intermediate lists in examples which are …

Lightweight fusion by fixed point promotion

A Ohori, I Sasano - ACM SIGPLAN Notices, 2007 - dl.acm.org
This paper proposes a lightweight fusion method for general recursive function definitions.
Compared with existing proposals, our method has several significant practical features: it …

Free theorems in the presence of seq

P Johann, J Voigtländer - Proceedings of the 31st ACM SIGPLAN …, 2004 - dl.acm.org
Parametric polymorphism constrains the behavior of pure functional programs in a way that
allows the derivation of interesting theorems about them solely from their types, ie, virtually …

The impact of seq on free theorems-based program transformations

P Johann, J Voigtländer - Fundamenta Informaticae, 2006 - content.iospress.com
Parametric polymorphism constrains the behavior of pure functional programs in a way that
allows the derivation of interesting theorems about them solely from their types, ie, virtually …

A generalization of short-cut fusion and its correctness proof

P Johann - Higher-order and symbolic computation, 2002 - Springer
Short-cut fusion is a program transformation technique that uses a single, local
transformation—called the foldr-build rule—to remove certain intermediate lists from …

Rewriting haskell strings

D Coutts, D Stewart, R Leshchinskiy - … 2007, Nice, France, January 14-15 …, 2007 - Springer
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type,
ByteString, based on lazy lists of byte arrays, combining the speed benefits of strict arrays …

An accumulative parallel skeleton for all

Z Hu, H Iwasaki, M Takeichi - … and Systems: 11th European Symposium on …, 2002 - Springer
Parallel skeletons intend to encourage programmers to build a parallel program from ready-
made components for which efficient implementations are known to exist, making the …

Stream Fusion: Practical shortcut fusion for coinductive sequence types

D Coutts - 2011 - ora.ox.ac.uk
In functional programming it is common practice to build modular programs by composing
functions where the intermediate values are data structures such as lists or arrays. A …

Short cut fusion is correct

P Johann - Journal of Functional Programming, 2003 - cambridge.org
Fusion is the process of removing intermediate data structures from modularly constructed
functional programs. Short cut fusion is a particular fusion technique which uses a single …