Interface PersistentList<T>

Type Parameters:
T - The type of values.
All Superinterfaces:
Collection<T>, Iterable<T>, List<T>
All Known Implementing Classes:
PersistentLinkedList

@Immutable(containerOf="T") public interface PersistentList<T> extends List<T>
Interface for persistent lists. A persistent data structure is immutable, but provides cheap copy-and-write operations. Thus all write operations ({with(Object), {without(Object)}) will not modify the current instance, but return a new instance instead.

All modifying operations inherited from List are not supported and will always throw UnsupportedOperationException.

Instances of this interface are thread-safe as long as published safely.