Describir: A constraint programming primer