Describir: Practical foundations for programming languages / Robert Harper.