...As far as subclassing from a tuple, I don't think I really looked into that, might be a great way to go... the idea of the vector object being immutable is probably actually a good idea - just because you may pass a vector in as a function argument and not want it to change... that way the vector is more like passing in two args, in that you can't change the callee's data
You won't be able to meaningfully overload operators if you subclass tuple (vector + tuple will not equal tuple + vector).
Alex.