For guile 2.9 Executing (use-modules (oop goops)) (define-method (< (s1 ) (s2 )) (pk 'wow) #f) (define (f x) (< x x)) (f "a") results in : unnamed port>:3:14: In procedure f: In procedure nan?: Wrong type argument in position 1: "a"