Availability:C-language interface function
- The list is a `proper' list: one that ends in the list terminator constant and tail is filled with the terminator constant.
- The list is a `partial' list: one that ends in a variable and tail is a reference to this variable.
- The list is cyclic (e.g. X = [a|X]). tail points to an arbitrary cell of the list and len is at most twice the cycle length of the list.
- The term list is not a list at all. tail is bound to the non-list term and len is set to the number of list-cells skipped.
It is allowed to pass 0 for tail and
NULL for len.