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