Basic category theory for computer scientists - Pierce, Benjamin C. (Foundations of computing., 1991)