Generic Programming : Advanced Lectures - Roland Backhouse, Jeremy Gibbons ((Lecture Notes in Computer Science))