Categories, types, and structures: An introduction to category theory for computer scientists - Asperti, Andrea (2010)