/**
 * Represents the empty list.  Uses the Singleton pattern to model the
 * uniqueness of the empty list.
 */
public class EmptyList extends AList {

    /**
     * Singleton pattern.
     */
    public final static EmptyList Singleton = new EmptyList();

    /**
     * Privatizing the constructor disables public instantiation of EmptyList.
     */
    private EmptyList() {
    }


    // Other methods elided...
}