class ImmutableAppendedList implements List<T> {

    @Override
    public int lastIndexOf( Object o ) {
        if (element == o || (element != null && element.equals(o))) return size - 1;
        return parent.lastIndexOf(o);
    }

    public  ImmutableAppendedList( List<T> parent,
                                  T element );

}