Splice in p between current cell and whatever it was previously pointing to
Make a copy of the list; i.e., a new list containing new cells but including the same elements in the same order
Count the number of occurrences of element in list
Return the number of cells in the list
add support for keys also?
add support for keys also?
Cause current cell to skip over the current next() one, effectively removing the next element from the list
Linear search down the list looking for element
add support for keys also?
add support for keys also?
add support for keys also?
Return the number of cells traversed to find first occurrence of a cell with element() element, or -1 if not present
add support for keys also?
add support for keys also?
Return the nth cell of the list, or null if no such
add support for keys also?
Set to point to n as next cell
Return the cell representing the last element of the list (i.e., the one whose next() is null
Basic linkedlist merge algorithm. Merges the lists head by fst and snd with respect to cmp
Standard merge sort algorithm
Standard list splitter, used by sort. Splits the list in half. Returns the head of the second half
Slink instances provide standard linked list next-fields, and support standard operations upon them. Slink structures are pure implementation tools, and perform no argument checking, no result screening, and no synchronization. They rely on user-level classes (see HashSet, for example) to do such things.
Still, Slink is made `public' so that you can use it to build other kinds of containers
Note that when K is specified, support for keys are enabled. When Identity is stipulated as 'true', those keys are compared using an identity-comparison instead of equality (using 'is'). Similarly, if HashCache is set true, an additional attribute is create in order to retain the hash of K