fix `equal?` on chaperoned values

Recursive traversal of components should use chaperoned access of
the components, not direct access.