Describir: Logical foundations of functional programming /