We develop a calculus for lazy functional programming based on recursion operators associated with data type de nitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all
Erik Meijer, Maarten M. Fokkinga, Ross Paterson