The set? predicate determines whether its argument is a set.
(define (set? obj)
; If OBJ is a fundamental or
; derived set, return true.
(or (fundamental? obj) (derived? obj)))