$ cat member.scm (import (except scheme member)) (define (member x lst cmp) (let loop ((lst lst)) (cond ((null? lst) #f) ((cmp x (car lst)) #t) (else (loop (cdr lst)))))) $ chicken-csc member.scm Warning: (member.scm:2) - assignment to imported value binding `member' Warning: Invalid assignment At the toplevel, In assignment: (set! scheme#member (lambda (x lst cmp) ((let ... ...) lst))) Variable `member' is assigned invalid value. The assigned value has this type: (procedure (* * *) . *) The declared type of `member' from module `scheme' is: ('a (list-of 'b) -> (or false (pair 'a (list-of 'b)))) Warning: redefinition of standard binding: scheme#member