I think I ran into this issue in a different place.
Guile does not support the ((library (foo bar) ...) form in cond-expand, so one way around it is to have (cond-expand (srfi-N ... ) ((library (srfi N)) ...) but in a situation where srfi-N is false Guile tries to evaluate the (library ... form and errors with (in the case of N being 180):
In procedure symbol->string: Wrong type argument in position 1 (expecting symbol): 180
Here is the example code: (import (scheme base) (scheme write)) (cond-expand (srfi-180 (display "I has SRFI 180 :)") (newline)) ((library (srfi 180)) (display "I has SRFI 180 :)") (newline)) (else (display "I do not has SRFI 180 :(") (newline))) It also errors without the number there, saying (switching 180 -> foo): no code for module (srfi foo)