anchor.diff:         (id-of b)))
   
   
  -(defmethod handle-input ((sim simulator) (in in-port) (obj object))
  +(defmethod input-evs ((sim simulator) (in in-port) (obj object))
     "Contract: simulator in-port object -> events
   
      Purpose: to add object to the children of sim.
  
positive.code:   nil)
  
  
  (defmethod lock-port ((sim simulator) (p port) (obj object))
    "Contract: simulator port object -> events
  
     Purpose: to lock the port and decide when unlock it.
  
negative.code:     (when in
        (multiple-value-bind (dest in-events)
  	  (access-port sim in obj)
  	(cons (make-instance 'event
  			     :owner dest
  			     :time (clock-of sim)
  			     :fn #'input-evs
  			     :args (list in obj))
  	      (nconc out-events
  		     in-events
  		     (post-output-evs (remove-child sim obj)
  				      out obj)))))))
  
  (defmethod post-output-evs ((sim simulator) (out out-port) (obj object))
    "Contract: simulator out-port object -> events
  
     Purpose: post output-evs hook."
    (error "Specialize me!"))
  
  
  