anchor.diff:    (print-unreadable-object (p stream :type t)
       (format stream "~A ~D objects"
               (op:the_name p)
  -            (dict-count (POA-active-object-map p)))))
  +            (activation-count (active-object-map p)))))
   
   (defun poa-name (poa)
     (labels ((name-list (poa parent)
  
positive.code: (define-method activate_object_with_id ((poa PortableServer:POA) id servant)
    (check-policy poa :retain)
    (setq id (to-object-id id))
    (trie-set id (POA-active-object-map poa) servant)
    (setf (gethash servant (POA-active-servant-map poa)) id))
  
  (define-method deactivate_object ((poa PortableServer:POA) oid)
    (check-policy poa :retain)
    (setq oid (to-object-id oid))
    (let ((servant (trie-get oid (POA-active-object-map poa))))
      (trie-remove oid (POA-active-object-map poa))
      ;; FIXME: what about multiple-id policy
      (remhash servant (POA-active-servant-map poa))
      (when (poa-has-policy poa :use_servant_manager)
        (op:etherealize (POA-servant-manager poa) 
                         oid poa servant nil nil))))
  
  
  
negative.code:   (when (and (poa-has-policy poa :retain)
               (poa-has-policy poa :use_servant_manager)
               (POA-servant-manager poa))
      (map-activations 
       (active-object-map poa)
       (lambda (oid servant)
         (op:etherealize (POA-servant-manager poa) 
                         oid poa servant t 
                         (not (null (servant-active-p (active-object-map poa)
                                                      servant))))))))
  
  
  (define-method destroy ((poa PortableServer:POA) etherealize-objects wait-for-completion)
  