In Racket, which shares the Kawa semantics, there is a special
`keyword-apply`: "Like apply, but kw-lst and kw-val-lst supply
by-keyword arguments in addition to the by-position arguments of the vs
and lst". So it takes a list of keyword objects and internally converts
them somehow to the native calling convention.
That makes sense. And I can imagine it is doable to write a generic wrapper in macro domain,
which is agnostic to whether the passed procedure takes keyword arguments or not, but
I don't know enough about Racket how to write it.