Gauche supports allow-other-keys.
If we aim at greatest common denominator, we may reject it. Such procedure should get the keyword-value list
in the rest argument anyway.
I wonder if such "wrapper" procedure can be written portably in srfi-177. Say, we have 'inner' which takes
two required arguments and some keyword arguments, and we want to wrap it with 'outer' which recognizes
additional 'x' and 'y' keyword arguments. What I can think of is something like this:
(define (outer a b . rest)
(define outer-adapter (keyword-lambda ((x y))
(let ((inner-kv-args (delete-keywords '(:x :y) rest)))
(apply inner a b inner-kv-args)))
(apply outer-adapter rest))
'delete-keywords' is Gauche-specific and need to be replaced with the portable one, but having wide variety
of what keyword is, it may be difficult.
By the way, can we 'apply' keyword-taking procedure to the keyword-value list? Is it that some implementation
doesn't even allow it?