Fixing some space leaks without a garbage collector

This paper describes amethod for eliminating a certain class of space leaksin lazy functional languages. A program that space leaks consumes more memory than would be expected. This may lead to longer execution time, or that the program unnecessarily runs out of memory. It has been known for a long time that functions returning tuples may give rise to space leaks. Hughes [Hug83] has shown that some programs mustleak memory, if a sequential evaluator is used. Several researchers have tried to solve this problem, with varying approaches, by introducing the necessary parallelism. Some of them modify the garbage collector, or use special operators to parallelize the programs explicitly. The approach used here is to use pattern bindings in definitions, which are available in most functional languages, to control the parallelism. No modification of the garbage collector or special operators are needed, The method has been implemented in the Chalmers LML/HBC compiler [AJ93, AJ89],