There's a difference in exports depending on if you use use-modules vs resolve-module.
If a module re-exports a function and the module is imported using use-modules the re-export seems to work as one would expect as the documentation says, the cdr of the pair is the member of the public interface. If you use a resolve-module and then try to pull out the cdr using module-ref it fails with a "No variable named...." If you try module-variable you simply get a #f. If you try doing the module-ref with the original name then it pulls it through just fine. Is this the expected behavior? As the user I would've expected no difference between use modules and the resolve-module method. Thank you. #! guiles/main.scm (add-to-load-path "$LOC") ;(use-modules (guiles two)) (define m (resolve-module '(guiles two))) (define no-print (module-ref m 'no-print)) (display m) (display "\n") (display no-print) !# #! guiles/one.scm (define-module (guiles one) #:export (print)) (define (print str) (display str)) !# #! guiles/two.scm (define-module (guiles two) #:use-module (guiles one) #:re-export ((print . no-print))) !#