anchor.diff:        (list (make-instance 'event
   			   :owner waiting
   			   :time (clock-of sim)
  -			   :fn #'port-ready
  -			   ;; FIXME! port ready should not give the
  -			   ;; in-port to the sender!
  -			   :args (list in))))))
  +			   :fn #'in-port-ready
  +			   :args (list (peer-port-of in)))))))
   
   
   (defmethod unlock-port ((sim simulator) (out out-port))
  
positive.code:    (children-by-id
      :initform (make-hash-table)
      :reader children-by-id-of
      :type hash-table)
     (out-in-map
      :initform (make-hash-table)
      :reader out-in-map-of
      :type hash-table)))
  
  
  
negative.code:   (add-child sim obj))
  
  
  (defmethod connect-port ((out out-port) (in in-port))
    "Contract: simulator out-port in-port -> nil"
    (setf (peer-port-of out) in)
    (setf (peer-port-of in) out)
    nil)
  
  
  (defmethod disconnect-port ((p port))
    "Contract: out-port -> nil"
    (slot-unbound 'port (owner-of (peer-port-of p)) 'peer-port)
    (slot-unbound 'port p 'peer-port)
    nil)
  
  
  (defmethod lock-port :before ((sim simulator) (p port) (obj object))
  