Practical Foundations for Programming Languages [pdf]
cs.cmu.edu