anchor.diff:            ((:twoline :two-line :2line) (setq oneline nil twoline t))
             ((:oneline :one-line :1line) (setq oneline t twoline nil))
             (:console (setq console t global-console t))
  -          (:thread (setq thread t))
  -          (:ndc (setq ndc t))
  +          (:thread
  +           (setq thread 
  +                 (let* ((min (when (integerp (car args)) (pop args)))
  +                        (max (when (integerp (car args)) (pop args))))
  +                   (declare (type (or null integer) min) 
  +                            (type (or null (integer 1)) max))
  +                   (if (or min max) (list min max) t))))
  +          (:ndc
  +           (setq ndc 
  +                 (let* ((min (when (integerp (car args)) (pop args)))
  +                        (max (when (integerp (car args)) (pop args))))
  +                   (declare (type (or null integer) min) 
  +                            (type (or null (integer 1)) max))
  +                   (if (or min max) (list min max) t))))
             (:pretty (setq pretty t nopretty nil))
             (:nopretty (setq nopretty t pretty nil))
             (:package (setq package t nopackage nil))
  
positive.code:  :NOFILE       | :NOFILE does not show the file
  ---------------|---------------------------------------------------------------
   :THREAD       | Include thread name into default pattern, it will be after the
                 | time, in [%t] format
  ---------------|---------------------------------------------------------------
   :NDC          | Include NDC context into default pattern, if thread is also
                 | specified, it will be after the thread name, separated by dash
                 | like this: [threadname-ndc], and will not be shown if unbound
                 |
                 | If thread name is not specified, it will be included in place
                 | of a thread name, in [%x] format, not taking any space if unset
  ---------------|---------------------------------------------------------------
   :NOPACKAGE    | Add {nopackage} option to the pattern (binds orig package at
   :PACKAGE      | the site of the log statement. PACKAGE binds keyword package,
  
negative.code:               ((getf args :nopackage) 
                 (s/ "%<" "%<{nopackage}")))
          (cond
            ;; figure out min/max
            ((and (setq w1 (getf args :thread))
                  (setq w2 (getf args :ndc)))
             (setq thread-width-fmt (figure-width w1)
                   ndc-width-fmt (figure-width w2))
             (s/ "%t"
                 (format nil "%; [;~At%:;-;~Ax]"
                         thread-width-fmt
                         ndc-width-fmt)))
            ((setq w1 (getf args :thread))
             (s/ "%t" (format nil "%:; [;;];~At"
                              (figure-width w1))))
            ((setq w1 (getf args :ndc))
             (s/ "%t" (format nil "%:; [;;];~Ax"
                              (figure-width w1))))
            (t (s/ "%t" "")))
          pat))))
  
  