| Abstract: |
Stream Fusion is a system for removing intermediate
list structures from Haskell programs; it consists of a Haskell
library along with several compiler rewrite rules. (The library is
available online.)
These theories contain a formalization of much of the Stream Fusion
library in HOLCF. Lazy list and stream types are defined, along
with coercions between the two types, as well as an equivalence
relation for streams that generate the same list. List and stream
versions of map, filter, foldr, enumFromTo, append, zipWith, and
concatMap are defined, and the stream versions are shown to
respect stream equivalence.
|