Four kinds of abstraction---data, algorithmic, structural, and representational---are discussed, with examples of their use in building an Ada library of software components. The main topic discussed is generic algorithms and an approach to their formal specification and verification.
This 265 page book (available from the publisher) describes eight Ada packages, with over 170 subprograms for various linear data structures based on linked lists. Many of the principles underlying STL were first formulated and put into practice in this Ada library.
README file for Ada Generic Library Source Code
Zip file containing Ada Generic Library Source Code
Gzipped sharfile containing Ada Generic Library Source Code
Contains many small examples of generic programming methods in Scheme.