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



Reply via email to