anchor.diff:  (defun opinion-thing-link (opid)
     (format nil "/opinion-page/~a" opid))
   
  -(def-thing
  -    'author
  -    #'get-author-data
  -  #'author-representation-from-row
  -  :lister (list
  -           #'author-lister
  -           :sortkeys '(values id)
  -           :length (lambda (&rest params)
  -                     (get-count
  -                      (unexecuted
  -                        (apply #'author-lister params)))))
  -  :html-thing-link #'author-thing-link
  -  :limitable t)
  -
  -
  -(def-db-thing
  -    'opinion
  -    'opinion
  -  #'display-opinion-line
  -  :keyfunc (lambda (id)
  -             (opinion-from-db-row (get-assoc-by-pkey 'opinion id)))
  -  :sortkeys '(target author datestamp excerpt rooturl)
  -  :html-thing-link #'opinion-thing-link)
  -
   (defun target-info-for-line (rootid)
     (let ((url (get-rooturl-by-id rootid)))
       (list
  
positive.code:      :text (or (tryit (grab-text url)) "PAGE UNAVAILABLE")
       :url url
       :warstats (warstats-for-target url))))
  
  (def-thing
      'target
      #'target-info-for-line
    #'display-target-line
    ;(lambda (targdata)
    ;  (truncate-string (getf targdata :title) :length 80))
     ; (concatenate 'string
     ;              (truncate-string (getf targdata :title) :length 15)
     ;              " - "
     ;              (truncate-string (getf targdata :text) :length 15)))
    :lister
    (list
     (wrap-with-paging-handler
      (lambda (&key order-by)
        (declare (ignore order-by))
        ;;Only have relevance for now
        (get-ranked-rootids)))
     :sortkeys '(relevance))
    :html-thing-link (lambda (id) (format nil "/target/~a" id)))
  
  (html-thing-lister:def-thing-action 'opinion 'reply
    '(lambda (id) (setf (@ window location href) (+ "/opinion/?opinion-id=" id))))
  
  (def-thing-connector
      'opinion
      'replies
    (lambda (&rest x)
      (mapcar #'car (opinion-tree-for-target
                     (assoc-cdr :url (opinion-by-id (car x))))))
    :other-thing 'opinion)
  
  ;;FIXME: Should all be done in query or else with something like an ordered
  ;; hash table.
  
negative.code:             (for-rooturl-mixin rooturl)
              (order-by-mixin (colm 'opinion 'datestamp))))
     :test #'eq))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; New thing-lister stuff
  