FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A transformation-based optimiser for Haskell
Science of Computer Programming - Special issue on the 6th European symposium on programming
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Introduction to Supercompilation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Proving correctness via free theorems: the case of the destroy/build-rule
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The worker/wrapper transformation
Journal of Functional Programming
Initial algebra semantics is enough!
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Stream fusion on haskell unicode strings
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
There are now a variety of shortcut fusion techniques in the wild for removing intermediate data structures in Haskell. They are often presented, however, specialised to a specific data structure and interface. This can make it difficult to transfer these techniques to other settings. In this paper, we give a roadmap for a library writer who would like to implement fusion for his own library. We explain shortcut fusion without reference to any specific implementation by treating it as an instance of data refinement. We also provide an example application of our framework using the features available in the Glasgow Haskell Compiler.