The work on stepwise enhancement also did not adequately support mutually recursive skeletons. Similarly, mutually recursive types have not been supported in all shape-based tools for functional languages. The foldr generalisation we propose supports mutual recursion by transforming a set of procedures rather than a single procedure. The details are provided in the next section and an example is given later in Programs 11 and 12.