Typeically in guile
> (procedure-arguments g)
$3 = ((required x) (optional) (keyword) (allow-other-keys? . #f) (rest . #f))
for a program g. But if we attach a procedure property 'arglist the outpu is acording to (system ice-9 session),
(define (procedure-arguments proc)
"Return an alist describing the arguments that `proc' accepts, or `#f'
if the information cannot be obtained.
The alist keys that are currently defined are `required', `optional',
`keyword', and `rest'."
(cond
((procedure-property proc 'arglist)
=> (lambda (arglist)
`((required . ,(car arglist))
(optional . ,(cadr arglist))
(keyword . ,(caddr arglist))
(allow-other-keys? . ,(cadddr arglist))
(rest . ,(car (cddddr arglist))))))
((procedure-source proc)
=> cadr)
(((@ (system vm program) program?) proc)
((@ (system vm program) program-arguments-alist) proc))
(else #f)))
Acording to the description allow-other-keys? is not included, but returned for a program
but not of prop 'arglist is used, so either
1. drop allow-other-keys? from the program? version or add it to the proper version and change doc string
Regards
Stefan