anchor.diff:                          (apply #'make-synergy :start start :end end keys)
                           (make-segment-list-from segment-list-left left)))))))))
   
  +
   (defparameter *synergy-list* nil)
   
  -(defmacro defsynergy (name &body body)
  -  (alexandria:with-gensyms (left-var right-var)
  +(defmacro defsynergy (name (left-var right-var) &body body)
     `(progn
        (defun ,name (,left-var ,right-var)
  -       (funcall (progn ,@body) ,left-var ,right-var))
  -     (pushnew ',name *synergy-list*))))
  +       ,@body)
  +     (pushnew ',name *synergy-list*)))
                 
  -(defsynergy synergy-noun-particle
  -  (generic-synergy
  +(defsynergy synergy-noun-particle (l v)
  +  (generic-synergy (l v)
      (lambda (segment)
        (and (typep (segment-word segment) 'kanji-text)
             (intersection '("n" "n-adv" "n-t")
  
positive.code:     (setf (segment-list-segments new-segment-list) segments)
      new-segment-list))
  
  (defun generic-synergy (filter-left filter-right &rest keys &key description connector score)
    (declare (ignore description connector score))
    (lambda (segment-list-left segment-list-right)
      (let ((start (segment-list-end segment-list-left))
  
negative.code:    :score 15
     :connector " "))
  
  (defsynergy synergy-te-iru-aru (l v)
    (generic-synergy (l v)
     (lambda (segment)
       (member 3 (getf (segment-info segment) :conj)
               :key (lambda (cdata) (conj-type (conj-data-prop cdata)))))
  