| Interface | Description | 
|---|---|
| Function<T1,Out> | A generic interface for function with one argument. | 
| Function2<T1,T2,Out> | A generic interface for function of 2 parameters. | 
| ImmutableList<E> | Immutable (read-only) list. | 
| Permutations<E> | Permutations contains a list of permutations of some  ImmutableList. | 
| Class | Description | 
|---|---|
| AbstractImmutableList<E> | |
| AbstractPermutations<E> | Abstract base class for Permutations, common providing standard functions. | 
| FlatList<E> | Assumes that inner lists all contain just 1 element, and turns a nested list
 into plain list. | 
| ImArrayList<E> | ArrayList implementation of  ImmutableList. | 
| JavaList<E> | Adapts ImmutableList to java.util.List. | 
| JoinedList<E> | Creates conjunction of two lists. | 
| ListWithRemove<E> | Turns immutable list into a list from which elements can be marked as
 "removed". | 
| MapList<IN1,OUT> | |
| MapThreadList<OUT,IN1,IN2> | |
| MathTools | Basic computations | 
| Outer<T> | creates all possible combinations of one element from each of the provided
 lists | 
| PermutationsOrderedWithoutReturn<E> | Creates all ordered permutations without return. | 
| PermutationsWithoutReturn<E> | Creates all permutation without return (WOR). | 
| PermutationsWithReturn<E> | Creates all permutations with return (WR). | 
| ReadonlyList<E> | A read-only version of a  List. | 
| ShuffledList<E> | makes a shuffled version of provided list. | 
| Tuple<T1,T2> | tuple with two elements of different types. | 
| Tuples<T1,T2> | Generate list of Tuple[T1, T2] with all combinations of 1 element from list1
 and one from list2. |