RcList is read-only, append only list (log), that can share common tail (history) with other
This data structure supports:
- read-only appending which creates new RcList consisting of:
(head, rest), where head is a new element and rest can be
potentially shared with other
- Strong and Weak links, allowing dynamic pruning,
- Iteration from the beginning (newest elements) to end (oldest elements).
Iterator over RcList