Using compact data representations for languages based on catamorphisms

We describe a new method for improving the performance of functional programs based on catamorphisms The method relies on using a compact vector representation for the recursive structure over which the catamorphism operates This saves space and allows catamorphisms to be implemented in tail recursive fashion even in cases where the standard linked structure representation requires non tail recursive evaluation Preliminary experimental measurements show substantial improvements are possible with our approach