Source: https://student.cs.uwaterloo.ca/~cs398/1-syllabus/2-weekly-schedule/lectures/02-03-kotlin-01-slides.pdf