Recurisive program synthesis.