There seems to be a nasty interference between the (ice-9 optargs) module, Guile's support for function docstrings, and a function's top-level definition context.
For example, the following works: (use-modules (ice-9 optargs)) (define* (foo #:optional (bar "baz")) (define (frob p) (display p) (newline)) (frob bar)) (foo) with output: baz But when you add a docstring, it doesn't. (use-modules (ice-9 optargs)) (define* (foo #:optional (bar "baz")) "Docs go here" (define (frob p) (display p) (newline)) (frob bar)) (foo) This generates an error: ERROR: In procedure memoization: ERROR: Bad define placement (define (frob p) (display p) (newline)). I'm not sure if this is a bug, but it looks like one to me. ;-) Peter -- Peter Brett <[email protected]> Remote Sensing Research Group Surrey Space Centre
