Side note: compare the "profiles" of this version, and the earlier versions -- this one has a much more "functional" profile.
I'm a bit confused what you mean about atend:err. Do you basically mean that there would be function composition between a macro, and a call to, for example, (err "missing char after backslash")? Something like
Do you basically mean that there would be function composition between a macro, and a call
Yes, a composition, though not a function composition. Because the Arc compiler rewrites (a:b ...) as (a (b ...)) when a:b appears in the first position in an expression, it works for macros also.
Thus
(atend:err "missing close quote")
expands into
(atend (err "missing close quote"))
which macro expands into
(unless (peekc (stdin))
(err "missing close quote"))