Categories, types, and structures an introduction to category theory for the working computer scientist - Asperti, Andrea; Longo, Giuseppe (MIT-Press, 1991)