Abstract data types (ADTs) are typical candidates for reusable software components. An important, although generally undecidable, question is how to design ADTs so as to make them truly reusable. The paper presents an elaborate example, showing that the most abstract ADT is not necessarily the most reusable one. Instead, the need to supply ADTs reflecting alternative representations of one abstract notion is felt. This leads to some general observations about the usability aspects of software components.