Practical Foundations for Programming Languages written by Robert Harper. This book covers more interesting parts than Benjamin's TAPL, such as concurrency and module systems, and it is interesting to read as an extension of TAPL.