anchor.diff:  
   (defpackage :org.altervista.rjack.de-sim.core
     (:nicknames :de-sim.core)
  -  (:use :common-lisp)
  +  (:use :common-lisp :de-sim.conditions)
     (:export :imminent-event-time
   	   :subscribed? :subscribe :unsubscribe
   	   :n-event-choosed :n-destroy
  
positive.code:   (multiple-value-bind (subscribers state-present?)
        (gethash state (subscriptions-of obj))
      (if (not state-present?)
  	(error "not a valid state")
  	(dolist (sub subscribers)
  	  (funcall (cdr sub)
  		   (car sub))))))
  
negative.code:   (multiple-value-bind (subscribers state-present?)
        (gethash state (subscriptions-of obj))
      (if (not state-present?)
  	(error 'error-invalid)
  	(not (null (find sub subscribers :key #'car))))))
  
  
  