Kernel has two general-purpose equivalence predicates (whereas R5RS
Scheme has three). The two Kernel predicates correspond to the
abstract notions of equivalence up to mutation (equal) and
equivalence in the presence of mutation (eq?).
— Applicative: eq? (eq? . objects)
Predicate eq? returns true iff all of objects are
effectively the same object, even in the presence of mutation.
— Applicative: equal? (equal? . objects)
Predicate equal? returns true iff all of objects
“look” the same as long as nothing is mutated. This is a weaker
predicate than eq?; that is, equal? must return true
whenever eq? would return true.