Скажем, у меня есть функция, которая принимает множество однородных аргументов ключевых слов:
(define (my-function #:arg1 arg1
#:arg2 arg2
; etc.
#:argN argN) (do-something))
"Однородный" в том смысле, что они все подпадают под один и тот же контракт. Есть ли лучший способ определения контракта для my-function
без простого перечисления всех аргументов снова, например:
(-> #:arg1 my-arg/c
#:arg2 my-arg/c
; etc.
#:argN my-arg/c
my-return/c)
Полагаю, можно написать макрос для этого, но есть ли более простое решение?