Category theory for programmers - Milewski, Bartosz ([Blurb], 2019)