Hello Andy, Ludovic, ... > > (define-module (mg-1) > > :use-module (oop goops) > > > > :duplicates (merge-generics) > > > > :export (<widget-a> > > dialog > > )) > > Here the #:duplicates is unnecessary, because you are not importing any > duplicate bindings.
Yes, I think our messages 'crossed' somehow, as you probably know by now, I did posted a slightly modified version of this small example while answering Ludovic ... but thanks. ... > But here you need other duplicates handlers, not just merge-generics; > merge-generics doesn't handle the other (default-duplicates-handlers). > > So you could change to have: > > #:duplicates (merge-generics replace warn-override-core warn last) > > But even now it didn't work, because of some deep bugs that have been > lurking in merge-generics support since 2007 at least (though not > present in 1.8). I believe I have fixed these; can you update and test? Yes, it works, great! Now, in order to make (merge-generics replace warn-override-core warn last) 'my' default, i.e. in my init.scm, what should I do? I looked at boot-9.scm, but it's unclear to me, since it's not just a list of symbols but calls make-mutable-parameter which I am unfamiliar with. Also, is merge-generics 'defined' so that modules not using (oop goops) will still 'be happy'? So the question is, would it be possible to configure [init.scm] guile in a way that it automatically sets, when a module is using (oop goops), that the (default-duplicate-binding-handler) then returns the above? Many thanks, David