Describir: Programming from Specifications