Free theorems feature prominently in the field of program transformation for pure functional languages such as Haskell. However, somewhat disappointingly, the semantic properties of so based transformations are often established only very superficially. This paper is intended as a case study showing how to use the existing theoretical foundations and formal methods for improving the situation. To that end, we investigate the correctness issue for a new transformation rule in the short cut fusion family. This destroy/build-rule provides a certain reconciliation between the competing foldr/build- and destroy/unfoldr-approaches to eliminating intermediate lists. Our emphasis is on systematically and rigorously developing the rule’s correctness...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
Abstract. We study various shortcut fusion rules for languages like Haskell. Following a careful sem...
Short-cut fusion is a program transformation technique that uses a single local transformation - cal...
In order to solve a long-standing problem with list fusion, a new compiler transformation, “Call Ari...
There are a number of approaches for eliminating intermediate data structures in functional programs...
The goal of program transformation is to improve efficiency while preserving meaning. One of the bes...
In functional languages intermediate data structures are often used as glue to connect separate part...
A number of program transformations currently of interest can be derived from Wadler's "free theorem...
Fusion is the process of removing intermediate data structures from modularly constructed functional...
There are a number of approaches for eliminating intermediate data structures in functional programs...
Unfold/fold transformations have been studied for various declarative programming languages such as ...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
Several proposals for computing freeness information for logic programs have been put forward in the...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
Abstract. We study various shortcut fusion rules for languages like Haskell. Following a careful sem...
Short-cut fusion is a program transformation technique that uses a single local transformation - cal...
In order to solve a long-standing problem with list fusion, a new compiler transformation, “Call Ari...
There are a number of approaches for eliminating intermediate data structures in functional programs...
The goal of program transformation is to improve efficiency while preserving meaning. One of the bes...
In functional languages intermediate data structures are often used as glue to connect separate part...
A number of program transformations currently of interest can be derived from Wadler's "free theorem...
Fusion is the process of removing intermediate data structures from modularly constructed functional...
There are a number of approaches for eliminating intermediate data structures in functional programs...
Unfold/fold transformations have been studied for various declarative programming languages such as ...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
Several proposals for computing freeness information for logic programs have been put forward in the...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-matc...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...