OrderedSequence <T, V> PushLeft(OrderedElement <T, V> o) { var v = _finger.LeftView(); if (v != null) { if (v.End.Measure().CompareTo(o.Measure()) < 0) { throw new Exception("OrderedSequence Error: PushLeft() of an element greater than the smallest seq el."); } } return(new OrderedSequence <T, V>(_x, _finger.PushLeft(o))); }
OrderedSequence <T, V> PushRight(OrderedElement <T, V> o) { var v = _finger.RightView(); if (v != null) { if (v.End.Measure().CompareTo(o.Measure()) > 0) { throw new Exception("OrderedSequence Error: PushRight() of an element less than the biggest seq el."); } } return(new OrderedSequence <T, V>(_x, _finger.PushRight(o))); }