This means attached data can be modified without doing an additional
search, if the specified item is not inserted due to an existing key.
Whether the new key or old key is used is already a function of the
second return value.
(let ((node-key (funcall key (datum node))))
(cond
((funcall test node-key item-key)
- (return-from find-insertion-point (values node direction-stack item-key)))
+ (return-from find-insertion-point (values node direction-stack node-key)))
((funcall pred item-key node-key)
(push (cons node 'left) direction-stack)
(setf node (left node)))