Books
A detailed, mathematically-oriented examination of abstraction in software development leading to concepts and techniques in generic programming.