Categories, types and structures : an introduction to category theory for the working computer scientist - Asperti, Andrea, 1961- (Foundations of computing, 1991)