package java.util;
import checkers.javari.quals.*;
public interface List<E> extends Collection<E> {
int size() @ReadOnly;
boolean isEmpty() @ReadOnly;
boolean contains(@ReadOnly Object o) @ReadOnly;
@PolyRead Iterator<E> iterator() @PolyRead;
@ReadOnly Object [] toArray() @ReadOnly;
<T> T[] toArray(T[] a) @ReadOnly;
boolean add(E e);
boolean remove(@ReadOnly Object o);
boolean containsAll(@ReadOnly Collection<?> c) @ReadOnly;
boolean addAll(@ReadOnly Collection<? extends E> c);
boolean addAll(int index, @ReadOnly Collection<? extends E> c);
boolean removeAll(@ReadOnly Collection<?> c);
boolean retainAll(@ReadOnly Collection<?> c);
void clear();
boolean equals(@ReadOnly Object o) @ReadOnly;
int hashCode() @ReadOnly;
E get(int index) @ReadOnly;
E set(int index, E element);
void add(int index, E element);
E remove(int index);
int indexOf(@ReadOnly Object o) @ReadOnly;
int lastIndexOf(@ReadOnly Object o) @ReadOnly;
@PolyRead ListIterator<E> listIterator() @PolyRead;
@PolyRead ListIterator<E> listIterator(int index) @PolyRead;
@PolyRead List<E> subList(int fromIndex, int toIndex) @PolyRead;
}