internal T ByArbitraryOrder(int index) { index.CheckIsBetween("index", -Length, Length - 1); index = index < 0 ? index + Length : index; return(Root.ByArbitraryOrder(index).Key); }