Note for Principles of Programming Languages - ppl By Kishore Kethavath