It is not clear to me why this cond gives Wrong type to apply error.
scheme@(guile-user) [12]>(cond ((equal? "i" "i") => (display "yay")))
yay
ERROR: In procedure #:
ERROR: Wrong type to apply: #
scheme@(guile-user) [12]>(cond ((string= "i" "i") => (display "yay")))
yay
ERROR: In procedure #:
ERROR: Wrong type to apply: #