Hi,

Нуёпт <[email protected]> writes:

> (define-module (my-module)
>       #:use-module (oop goops)
>       #:use-module (module a)
>       #:use-module (module b)
>       #:duplicates merge-generics
> )
>
> (display (inside? (make <a>)))(newline)
> (display (inside? (make <b>)))(newline)
>
> ;;; module a
>
> (define-module (module a)
>       #:use-module (oop goops)
> )
>
> (define-class <a> () x)
>
> (define-method (inside? (a <a>)) "class a" )
>
> (export inside?)
> (export <a>)
>
> ;;; module b
>
> (define-module (module b)
>       #:use-module (oop goops)

You should add “#:use-module (module a)” here.  Otherwise...

> (define-class <b> () x y )
>
> (define-method (inside? (b <b>)) "class b" )

... this ‘define-method’ actually creates a new generic function called
‘inside?’, with one method, but this generic function is separate from
the one exported by ‘(module a)’.

Thanks,
Ludo’.



Reply via email to