When use suffixes "?" and "!"?

I see in 6 Textual Matters that "?" should be used in "predicates and boolean-valued functions" and "!" for "setters and field mutators".

But in racket/gui I see accept-drop-files without "?" and setter enable without "!".

Is this violation of the Style Guide or I don't understand something and these names are correct?

accept-drop-files and enable are neither functions nor procedures. They are names of methods belonging to objects. They are used in the context of "send" expressions and act as instructions to the receiving instance, which performs the actual operation.

  1. These method names pre-date the Style Guide, but yes, the conventions of using “!” and “?” predate Racket.

  2. In the GUI library, originally based on a portable C++ library, some method names serve as setters as well as predicates.
    In these cases it is best to ignore the convention.

  3. Finally, the word “guide” suggests “guidance” not an absolute requirement. (I wrote a good part of it and still don’t always stick to all recommendations.)