anchor.diff:            (<= (+ (/ (square dx) (square rx))
                    (/ (square dy) (square ry)))
                 1.0d0)))))
  +
  +;;;----------------------------------------------------------------------------------------
   
   (defclass line (object)
     ())
  
positive.code:  (sound.play                    "Sound.play"                   ((id id))))
  
  
  (defgeneric object-slots (object)
    (:method-combination append))
  
  (defclass timer ()
    ((duration-ms :initarg :duration-ms :initform 0.0d0 :type 'double :reader timer-duration-ms)))
  
  (defmethod object-slots append ((self timer))
    (list :duration-ms (timer-duration-ms self)))
  
  (defmethod print-object ((self timer) stream)
    (print-unreadable-object (self stream :identity t :type t)
      (format stream "~{~S~^ ~}" (object-slots self)))
    self)
  
  (defmethod initialize-instance :before ((self timer) &key &allow-other-keys)
    (open-backend))
  
  
negative.code:   (button.create self (interactor-label self))
    (setf (interactor-action-command self) (interactor-action-command self)))
  
  ;;;----------------------------------------------------------------------------------------
  
  (defclass check-box (interactor)
    ())
  
  