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