anchor.diff:         (bt:acquire-lock (initial-suggestions-lock source))
          (calispel:? wait-channel)
          ;; `initial-suggestions' initialization must be done before first input can be processed.
  -       (when (constructor source)
  -         (setf (slot-value source 'initial-suggestions)
  -               (funcall (constructor source) source)))
  +       (cond ((listp (constructor source))
  +              (setf (slot-value source 'initial-suggestions)
  +                    (constructor source)))
  +             ((constructor source)
  +              (setf (slot-value source 'initial-suggestions)
  +                    (funcall (constructor source) source))))
          (setf (slot-value source 'initial-suggestions)
                (ensure-suggestions-list source (initial-suggestions source)))
          ;; TODO: Setting `suggestions' is not needed?
  
positive.code: another.")
  
       (constructor nil
                    :type (or null function)
                    :documentation
                    "Function called with the source as argument.
  The returned value is assigned to `initial-suggestions'.
  
negative.code: 
       (initial-suggestions '()
                            :reader initial-suggestions
                            :documentation
                            "Suggestions used on initialization, before any
  user input is processed.
  