This is great, but I can't help but be bothered by the choice of "left" and "right" for relative addressing. The number 2 isn't "to the right of" the number 1. Addresses may move left-to-right in your mental model, but semantically they only increase or decrease.<p>You <i>really</i> want something like C++ STL's vector insert and erase methods.