package com.googlecode.totallylazy.collections;
import com.googlecode.totallylazy.Segment;
import com.googlecode.totallylazy.Sequence;
import com.googlecode.totallylazy.predicates.Predicate;
import com.googlecode.totallylazy.transducers.Sender;
import java.util.Collection;
import java.util.NoSuchElementException;
public interface PersistentCollection<T> extends PersistentContainer<T>, Collection<T>, Segment<T> {
@Override
boolean isEmpty();
@Override
PersistentCollection<T> empty();
@Override
PersistentCollection<T> cons(T t);
@Override
PersistentCollection<T> tail() throws NoSuchElementException;
PersistentCollection<T> delete(T t);
Sequence<T> toSequence();
T[] toArray(Class<?> aClass);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#cons(T)} */
@Override @Deprecated
boolean add(T e);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#cons(T)} */
@Override @Deprecated
boolean addAll(Collection<? extends T> c);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#delete(T)} */
@Override @Deprecated
boolean remove(Object o);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#deleteAll(Iterable)}*/
@Override @Deprecated
boolean removeAll(Collection<?> c);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#filter(Predicate)} */
@Override @Deprecated
boolean retainAll(Collection<?> c);
/** @deprecated Mutation not supported. Replaced by {@link PersistentCollection#empty()} */
@Override @Deprecated
void clear();
}