Source: https://www.gopl.io/ch1.pdf