Hello.
Probably the following is a bug in goops-0.1.6:
(use-modules (oop goops))
;;; an abstract vector class (numbers are a special case)
(define-class <Vector> ())
;;; vector addition
(define-generic vector+)
(define-method vector+ () 0) ;; Warning: may not be the right thing ...
(define-method vector+ ((x <Vector>)) x)
(define-method vector+ ((x <number>)) x)
(define-method vector+ ((x <number>) (y <number>)) (+ x y))
(define-method vector+ ((x <Vector>) (y <Vector>))
(error "has to be implemented for each nontrivial vector type"))
;;; method for arbitrary arguments (should only be used when nothing
;;; else fits)
(define-method vector+ ( . args )
(vector+ (car args)
(apply vector+ (cdr the))))
;;; The following command hangs. I remember that I have obtained also
;;; the wrong result 3 in some situations.
(vector+ 1 2 3)
I tried to find a fix, but did not succeed... Sorry.
Yours, Niko.