anchor.diff:    (unless length-var (setf length-var (gensym "LV")))
     (unless kana-var (setf kana-var (gensym "KV")))
     `(defhint ,seqs (,reading-var)
  -     (let* ((,kana-var (get-kana ,reading-var))
  -            (,length-var (length ,kana-var))
  -            )
  -       (declare (ignorable ,length-var))
  -       (insert-hints ,kana-var
  -                     (list
  -                      ,@(loop for pair in hints-def
  -                           collect `(list ,@pair)))))))
  +     (block hint
  +       (let* ((,kana-var (get-kana ,reading-var))
  +              (,length-var (length ,kana-var))
  +              ,@(loop for (var value) in hints-def
  +                   unless (keywordp var)
  +                   collect `(,var (or ,value (return-from hint nil)))))
  +         (declare (ignorable ,length-var))
  +         (insert-hints ,kana-var
  +                       (list
  +                        ,@(loop for pair in hints-def
  +                             when (keywordp (car pair))
  +                             collect `(list ,@pair))))))))
   
   (defun get-hint (reading)
     (let ((hint-fn (gethash (seq reading) *hint-map*))
  
positive.code:      2407650 ;; このぶんでは
       2553140 ;; こんにちでは
       2762790 ;; ひとつには
       )
      (l)
    (:space (- l 2))
    (:mod (- l 1)))
  
  
negative.code:                                            (:like 'kt.text "%は"))))
  |#
  
  ;; TODO には とは
  
  (def-simple-hint ;; no space
      (1289480 ;; こんばんは
       1289400 ;; こんにちは
       1004620 ;; こにちは
       1008450 ;; では
       )
      (l)
      (:mod (- l 1)))
  