anchor.diff:     ))
   
   (defun word-info-json (word-info)
  -  (with-slots (type text kana seq score components alternative primary start end)
  +  (with-slots (type text kana seq conjugations score components alternative primary start end)
         word-info
       (jsown:new-js
         ("type" (symbol-name type))
         ("text" text)
         ("kana" kana)
         ("seq" seq)
  +      ("conjugations" (if (eql conjugations :root) "ROOT" conjugations))
         ("score" score)
         ("components" (mapcar #'word-info-json components))
         ("alternative" alternative)
  
positive.code:     (cond ((equal val "KANJI") :kanji)
            ((equal val "KANA") :kana)
            (t :gap))))
  
  (def-reader-for-json word-info-text "text")
  (def-reader-for-json word-info-kana "kana")
  
negative.code:                  :text (get-text word)
                   :kana (get-kana word)
                   :seq (seq word)
                   :conjugations (when (typep word 'simple-text) (word-conjugations word))
                   :components (when (typep word 'compound-text)
                                 (loop with primary-id = (id (primary word)) 
                                    for wrd in (words word)
  