Hi! Trying to upgrade 8sync to latest Guile, I found the problem that a generic function cannot be used as as accessor, and then be exported/imported. Or something. At least, the problem is triggered when compiling (or using) a module that does that. See the attached foo.scm, bar.scm and `doit', when running it in the Guile source tree I get --8<---------------cut here---------------start------------->8--- $ ./doit ++ export GUILE_LOAD_COMPILED_PATH=/home/janneke/src/8sync/wip ++ GUILE_LOAD_COMPILED_PATH=/home/janneke/src/8sync/wip ++ ./pre-inst-env guild compile -L . -o foo.go foo.scm wrote `foo.go' ++ ./pre-inst-env guild compile -L . -o bar.go bar.scm Backtrace: In ice-9/eval.scm: 293:34 19 (_ #) In ice-9/boot-9.scm: 3380:4 18 (define-module* _ #:filename _ #:pure _ #:version _ #:imports _ #:exports _ #:replacements _ # _ # …) 2565:24 17 (call-with-deferred-observers #) 3393:24 16 (_) 222:17 15 (map1 (((foo)))) 3297:17 14 (resolve-interface (foo) #:select _ #:hide _ #:prefix _ #:renamer _ #:version _) In ice-9/threads.scm: 390:8 13 (_ _) In ice-9/boot-9.scm: 3223:13 12 (_) In ice-9/threads.scm: 390:8 11 (_ _) In ice-9/boot-9.scm: 3507:20 10 (_) 2806:4 9 (save-module-excursion #) 3527:26 8 (_) In unknown file: 7 (primitive-load-path "foo" #) In foo.scm: 12:0 6 (_) In oop/goops.scm: 2852:4 5 (_ _ . _) 2782:2 4 (_ #< 7ff688c64f80> _) In srfi/srfi-1.scm: 634:9 3 (for-each # (#< foo 7ff688c64e80>)) In oop/goops.scm: 2590:22 2 (_ #< foo 7ff688c64e80>) In unknown file: 1 (setter #< .foo (1)>) In ice-9/boot-9.scm: 1669:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1669:16: In procedure raise-exception: In procedure setter: Wrong type argument in position 1: #< .foo (1)> --8<---------------cut here---------------end--------------->8--- I found similar behaviour in guile-3.0.2, guile-2.2.7 is fine. Greetings, Janneke