I see create-arc et al documented as returning the index. I will look at using those wrappers. But I do not see how that code differs from mine, which did not get back "(:data ....)" from Tk.
Well, the create-arc function returns the integer id of course, as read-data does the untagging and only returns the data payload.
Peter