>> (ascii-opening-bracket char) => char or #f
>> (ascii-closing-bracket char) => char or #f
>> (ascii-opposing-bracket char) => opposing-char or #f
>> I suggest going with Unicode terminology and conventional predicates:
>> ascii-open-punctuation?, ascii-close-punctuation?, and
>> ascii-mirroring-character. Not quite as terse, perhaps, but more familiar.
I believe they are only more familiar to Unicode experts :) "Bracket" is
almost universal slang, even known by laypeople, for any kind of
parenthetical symbol with an opposite pair. And the only mirroring
punctuation in the ASCII range are the four kinds of brackets. "Bracket"
is also a shorter and less abstract word than "punctuation".
However, "mirroring-bracket" is just as good as "opposing-bracket", so I
can change it without further ado. It's only one character longer too.
"Opening" and "closing" are words of the same length so I preferred them
even though "open" and "close" are shorter. No strong opinion here.