Documentation

Generate a very basic fold operation given the Name of a type
constructor. Data constructors of the specified type become function
parameters to the fold, in the same order the type defines them. Simple
recursive references in the type's constructors become recursive calls to
the fold.

At present this only properly handles very simple types.
Basically, that means types that have no parameters, types with one parameter
where the only recursion is via field slots with types of the form 'T a'
where a is the type of the parameter, and more complicated types without
recursion.