anchor.diff:  
   
   (defclass world (identifiable)
  -  ((history
  -    :initform ()
  -    :accessor history-of
  -    :type list
  -    :documentation "Past instances of this world, newer first.")
  +  ((clock
  +    :initform 0
  +    :initarg :clock
  +    :accessor clock-of
  +    :type fixnum
  +    :documentation "World's internal clock.")
   
      (events
       :initarg :events
  
positive.code:     :type fixnum
      :documentation "When this event must be executed.")
  
     (!action
      :initarg :!action
      :initform (error "missing :action")
      :reader !action-of
      :type function   ; FIXME: must fully specify signature.
      :documentation "Implements the behaviour of this event, taking the
      world as its only argument and modifying it.
  
negative.code:     :documentation "World's events.")))
  
  
  (defmethod schedule ((w world) (ev event))
    (assert (>= (time-of ev) (clock-of w)) nil
  	  "Scheduling an event in the past.")
    (setf (events-of w)
  	(sort (cons ev (events-of w))
  	      #'< :key #'time-of)))
  
  
  (defmethod next ((w world))
    (with-accessors ((events events-of) (clock clock-of)) w
      (when (not (null events))
        (let ((ev (pop events)))
  	(setf clock (time-of ev))
  	(format t "~&~D " clock)
  	(funcall (action-of ev) w)
  	w))))
  