ISortedList<T> definition and 2 implementations