The Combinatorics Of Abstract Container Data Types