# When use suffixes "?" and "!"?

**URL:** <https://racket.discourse.group/t/when-use-suffixes-and/3781>\
**Category:** Questions & Answers\
**Tags:** style\
**Created:** [June 8, 2025, 5:29pm UTC](https://racket.discourse.group/t/when-use-suffixes-and/3781 "2025-06-08T17:29:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kalimehtar](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/kalimehtar/32/394_2.png) [@Kalimehtar](https://racket.discourse.group/u/Kalimehtar)\
**Post date:** [June 8, 2025, 5:29pm UTC](https://racket.discourse.group/t/when-use-suffixes-and/3781/1 "2025-06-08T17:29:22Z")

</div>

I see in [6&nbsp;Textual Matters](https://docs.racket-lang.org/style/Textual_Matters.html) 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](https://docs.racket-lang.org/gui/window___.html#%28meth._%28%28%28lib._mred%2Fmain..rkt%29._window~3c~25~3e%29._accept-drop-files%29%29) without "?" and setter [enable](https://docs.racket-lang.org/gui/window___.html#%28meth._%28%28%28lib._mred%2Fmain..rkt%29._window~3c~25~3e%29._enable%29%29) without "!".

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

---

<div class="post-metadata">

**Author:** ![JustinZed](https://avatars.discourse-cdn.com/v4/letter/j/8e7dd6/32.png) [@JustinZed](https://racket.discourse.group/u/JustinZed)\
**Post date:** [June 8, 2025, 6:53pm UTC](https://racket.discourse.group/t/when-use-suffixes-and/3781/2 "2025-06-08T18:53:36Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![EmEf](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@EmEf](https://racket.discourse.group/u/EmEf)\
**Post date:** [June 8, 2025, 7:43pm UTC](https://racket.discourse.group/t/when-use-suffixes-and/3781/3 "2025-06-08T19:43:32Z")

</div>

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.)
