How to choose between the use of lists or other means of representation is not always obvious: it can take many years of experience to make good decisions, weighing up such criteria as ease of program design, ease of testing, ease of long term maintenance, compactness, speed, generality.
Sometimes the reason for using a particular representation is simply that there already exist utilities that do the job one needs and one does not wish to have to rewrite them.
Although in principle lists can be used for every type of data, it is sometimes useful on grounds of compactness of data, or speed of access, or more useful run-time checking to use a more specific data-type for a particular problem.
When more specialised representations are required, Pop-11 provides records, vectors, arrays, strings, properties and user defined record classes and vector classes. (See the list of data types in Chapter 2.)
Moreover, the object-oriented extensions to Pop-11 (Objectclass and Flavours) provide additional means of structuring large programs. See Chapter 8 below for a brief introduction to Objectclass.