An experiment in compositional programming