Note
All classes in this package work correctly as specified. For pedagogical
purposes,
however, a few features have intentional S/E guideline violations.
You may, for example, find a field (a public attribute) that should
have been made private, mutators that change object states without
validation, and so on. Such violations are clearly indicated in the API.