The following valid R7RS library definition is not handled correctly by Guile: (define-library (guile-test) (export fold) (cond-expand ((library (scheme list)) (import (scheme list))) ((library (srfi srfi-1)) (import (srfi srfi-1))))) This is what I get: $ guile --r7rs -L . GNU Guile 3.0.1 ... > (import (guile-test)) While compiling expression: no code for module (scheme list) > Thus, the cond-expand library declaration does not seem to be handled correctly. Other experiments with cond-expand also show strange behaviors: (define-library (guile-test) (export foo) (cond-expand (guile (import (scheme base)))) (begin (define foo 42))) > (import (guile-test)) While compiling expression: Syntax error: unknown location: source expression failed to match any pattern in form (((begin (define foo 42)))) -- Marc