anchor.diff:       (wrote-to-ready-channel-p nil
                                  :type boolean
                                  :export nil
  +                               :initarg nil
                                  :documentation "Becomes non-nil when calculation
   is done and the source was sent to the `ready-channel'.")
   
        (wrote-to-ready-channel-lock (bt:make-lock)
                                     :type bt:lock
                                     :export nil
  +                                  :initarg nil
                                     :documentation "Protect
   `wrote-to-ready-channel-p' access.")
   
        (update-thread nil
                       :type t
                       :export nil
  +                    :initarg nil
                       :documentation "Thread where the `filter-preprocessor', `filter' and
   `filter-postprocessor' are run.  We store it in a slot so that we can terminate it.")
   
  
positive.code:               :accessor nil
                :export nil
                :documentation "List of funcallables that can be run on suggestions
  of this source.")
  
       (persistent-action nil ; TODO: Should be a list so we can support as many persistent actions as we want.
                          :type (or null function)
  
negative.code:      (initial-suggestions-lock (bt:make-lock)
                                 :type bt:lock
                                 :export nil
                                 :initarg nil
                                 :documentation "Protect `initial-suggestions'
  access.")
  
  