How about making scm_set_program_arguments() available at the scheme level too? As say (set-program-arguments lst) (without the "first" arg business of the C level). The C func is good for when you munch some options at the C level in an scm_boot_guile, having it at the scheme level would be for the same thing if do it in scheme instead.