anchor.diff:      (when in
         (multiple-value-bind (dest in-unlock-event)
   	  (access-port sim in)
  +	(remove-child sim obj)
   	(list out-unlock-event in-unlock-event
   	      (make-instance 'event
   			     :owner dest
   			     :time (clock-of sim)
   			     :fn #'handle-input
  -			     :args (list in obj))))
  +			     :args (list in obj)))))))
   
   
   (defmethod add-child ((sim simulator) (obj object))
  
positive.code: 
  
  (defclass simulator (object)
    ((children-by-id
      :initform (make-hash-table)
      :reader children-by-id-of
      :type hash-table)
  
negative.code:   sim)
  
  
  (defmethod lock-port ((p port) (obj object))
    "Contract: port object -> (or unlock-event nil)
  
     Purpose: to lock the port and decide when unlock it.
  