in reply to OO style question: how much information to hide?
I'd say that being able to write simpler code is a win. So:
So I could certainly see value in having an optional complaint emitted if you try to delete attributes from end tags (for those who want to detect if they are being "sloppy" in this respect as a check on the validity of their code). But I don't think that should be the default (in a module with "Simple" in the name).
- Don't die nor warn (by default) on "deleting" a non-existant tag (even if there is some reason that it should be "impossible" for the tag to exist, such as the token being an end tag)
- Have the "delete" method return what was deleted (just like delete does)
- Have "add attribute" complain for end tags