abstract = "Program synthesis with Genetic Programming searches
for a correct program that satisfies the input
specification, which is usually provided as
input–output examples. One particular challenge is
how to effectively handle loops and recursion avoiding
programs that never terminate. A helpful abstraction
that can alleviate this problem is the employment of
Recursion Schemes that generalize the combination of
data production and consumption. Recursion Schemes are
very powerful as they allow the construction of
programs that can summarize data, create sequences, and
perform advanced calculations. The main advantage of
writing a program using Recursion Schemes is that the
programs are composed of well-defined templates with
only a few parts that need to be synthesized. In this
paper, we make an initial study of the benefits of
using program synthesis with fold and unfold templates
and outline some preliminary experimental results. To
highlight the advantages and disadvantages of this
approach, we manually solved the entire GPSB benchmark
using recursion schemes, highlighting the parts that
should be evolved compared to alternative
implementations. We noticed that, once the choice of
which recursion scheme is made, the synthesis process
can be simplified as each of the missing parts of the
template are reduced to simpler functions, which are
further constrained by their own input and output
types.",