The combinatorics of abstract container data types. - Dominic H. Tulley (1997)