An Experiment in Extensional Programming