Source: https://lec.inf.ethz.ch/ppl/2022/slides/pplHandout_06_en.pdf