self 1 2 range 1 2 3 -> (empty) self 1 2 range 1 2 3 -> (empty) self 1 2 range 1 2 3 4 -> 1 2 3 4 self 1 2 range 1 2 -> 1 2 self 1 2 range 1 2 -> 1 2 self 1 2 range (empty) -> (empty) self 1 2 range 1 -> 1 2 self 1 2 range 1 -> 1 2