Practical Foundations for Programming Languages - Robert Harper (Cambridge University Press, 2013)