Solution (source code)

= Solution

\b[Throw an informative exception], such as `NoSuchElementException`, and leave the set unchanged. This makes a violated nonempty <precondition> visible at the point of misuse. Returning a distinguished <integer> would be ambiguous because every <integer> is a legitimate set member.

A different <object interface> could return an optional <integer>, representing failure explicitly, but that changes the declared return type. For the supplied integer-returning operation, a checked failure is useful and consistent with the stated <precondition>.