I was playing with GOOPS and noticed this bug: > scheme@(guile-user)> (use-modules (oop goops)) > scheme@(guile-user)> (define-method (+ (x ) (y )) (next-method)) > scheme@(guile-user)> (+ '() '()) > oop/goops/compile.scm:48:35: In procedure car: > oop/goops/compile.scm:48:35: Wrong type argument in position 1 (expecting pair): () > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> ,bt > > In standard input: > 8:0 4 (#) > In oop/goops/dispatch.scm: > 231:9 3 (cache-miss #< + (1)> (() ())) > 246:4 2 (memoize-effective-method! #< + (1)> (() ()) (#)) > In oop/goops/compile.scm: > 54:13 1 (compute-cmethod (#< ( ) afc640>) (…)) > 48:34 0 (compute-cmethod () (#< befd20> #<)) With the attached patch applied, here's what happens instead: > scheme@(guile-user)> (define-method (+ (x ) (y )) (next-method)) > scheme@(guile-user)> (+ '() '()) > ERROR: In procedure scm-error: > ERROR: No next method when calling #< + (1)> > with arguments (() ()) > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> ,q I confess I don't know much about GOOPS, but I think the fix is pretty obvious. Best, Mark