In terms of what it returns and the default. Since there are only keys, not values in a Set, this is a case where you probably want to return the Set from the `delete!` operation. And what would a default argument mean? I guess we could have `delete!(s::Set, x)` throw an error if `x` isn't present and return `true` if it is (treating sets like Dicts where all the values are `true`), and have `delete!(s::Set, x, false)`, for example, not throw an error if `x` isn't in `s` but return `true` or `false` indicating if it was.