Simple Program Schemes and Formal Languages by J. Engelfriet