Martin, Thanks for the link. It looks like you are setting a default size which can be overridden by an argument from the user. But for what I want, the user needs to be shielded completely from that implementation detail.
For example, let's say I make a method where the user queries the objects contained within a bounding box (though I haven't implemented it yet):
[selection 0 0 500 500( | [canvasinfo] | [print] <-arbitrary length list of object indices for objects contained within the bbox (0 0 500 500)
I don't know ahead of time how many objects may be in the canvas, so I have no way to judge what the size of the list should be. I could just set a default size of 500 or 1000 and reallocate as necessary, but that gets kind of ugly.
-Jonathan