This is how I'd expect it to work;

```
# Insert 2 at 4
1: 1 2 3 4 5     # Initial list
2: 1 _ 3 4 5     # Remove 2
3: 1 3 4 5       # Squash list
4: 1 3 4 _ 5     # Make space
5: 1 3 4 2 5     # Insert 2
6: 1 3 4 2 5     # 4 has moved left

# Insert 4 at 2
1: 1 2 3 4 5     # Initial list
2: 1 2 3 _ 5     # Remove 4
3: 1 2 3 5       # Squash list
4: 1 _ 2 3 5     # Make space
5: 1 4 2 3 5     # Insert 4
6: 1 4 2 3 5     # 2 has moved right
```