(require-extension coops) (define-class ) (define-method (foo (i )) (print "foo v1")) (define obj (make )) (foo obj) (define-class ) (define-method (foo (i )) (print "foo v2")) (foo obj) ;; Output: ;; foo v1 ;; foo v1 <- this is OK ;; Now, same with modules: (module a * (import chicken scheme) (use coops) (define-class ) (define-method (foo (i )) (print "foo v1")) ) (import a) (define obj (make )) (foo obj) (module a * (import chicken scheme) (use coops) (define-class ) (define-method (foo (i )) (print "foo v2")) ) (foo obj) ;; Output: ;; foo v1 ;; Error: (foo) no method defined for given argument classes: (#'>)