Programming Languages and Systems - Peter Thiemann (Springer Berlin Heidelberg, 2016)