Describir: Expressive Applications of Constraint Logic Programming