anchor.diff:     (text :initarg :text :accessor word-info-text)
      (kana :initarg :kana :accessor word-info-kana)
      (seq :initarg :seq :initform nil :accessor word-info-seq)
  +   (conjugations :initarg :conjugations :initform nil :accessor word-info-conjugations)
      (score :initarg :score :initform 0 :accessor word-info-score)
      (components :initarg :components :initform nil :accessor word-info-components)
      (alternative :initarg :alternative :initform nil :accessor word-info-alternative)
  
positive.code:       (format s "~a : " (reading-str-seq seq))
        (when sense-str (princ sense-str s)))))
  
  (defun print-conj-info (seq &optional (out *standard-output*))
    (loop with straight-conj = (select-dao 'conjugation (:and (:= 'seq seq) (:is-null 'via)))
         and via-used = nil
       for conj in (or straight-conj (select-dao 'conjugation (:= 'seq seq)))
       for via = (seq-via conj)
       unless (member via via-used)
       do (loop for conj-prop in (select-dao 'conj-prop (:= 'conj-id (id conj)))
  
negative.code:     (cond ((equal val "KANJI") :kanji)
            ((equal val "KANA") :kana)
            (t :gap))))
  
  (defmethod word-info-conjugations ((obj cons))
    (let ((val (jsown:val obj "type")))
      (cond ((equal val "ROOT") :root)
            (t val))))
  
  (def-reader-for-json word-info-text "text")
  (def-reader-for-json word-info-kana "kana")
  