(( ... #!sweet ...) ... #!no-sweet ... ( ...Â#!curly-infix ...)) ...
! a b
! c d
As written, it sounds that the directives must have a flat, global effect on the port, crossing all ( ) boundaries.
But correctly implementing this sounds painful to me. ÂE.g. you can't call a lower-level (read) / (neoteric-read) unless they understand these directives. ÂAnd every procedure must be ready for sweet processing to be turned off underneath it.
I propose for simplicity to say that these directives SHOULD (MUST?) be used only at top level.
Probably also require them to be alone on a line, at column 0 (trailing hspace and comments are ok)?
And say that implementations MAY signal an error if used otherwise.