Ordered Linked List Implementation #
Ordered lists are implemented on top of unordered lists. Each node contains the information necessary to know where a given key can be inserted there or not.
Given a node {key, data, link} can be interpreted as the range to insert after
this node as (key, link.data?).
In other words, after node {key, data, link}, we can insert nodes with key
knew such that key < knew && knew <? link (link may be .none i.e. inf).