anchor.diff:  - list of characters which are break opportunities (i.e space),
   - vector of string indexes which are break opportunities.
   
  -START/END denote string beginning and ending offset."
  +START/END designate the sub-sequence of STRING beginning and ending
  +offset. The sub-sequence may contain newline characters and it is up
  +to the BREAK-STRATEGY whenever it assigns any meaning to to them."
     (unless start (setq start 0))
     (unless end (setq end (length string)))
     (unless margin (setq margin (* 80 (etypecase width
  
positive.code:                       (values (%line-breaks-1 string width offset margin start end) 0)))
                     ((>= start (aref opportunities next-opportunity-index))
                      (return-from breaks-rec
                        (breaks-rec offset margin start end (1+ next-opportunity-index)))))
               (loop
                  with best-breaks = nil
                  with best-cost = nil
  
negative.code: 
  (defmacro with-keywords-removed ((var keywords &optional (new-var var))
  				 &body body)
    "Binds NEW-VAR (defaults to VAR) to VAR with the keyword arguments specified
  in KEYWORDS removed."
    `(let ((,new-var (remove-keywords ,var ',keywords)))
       ,@body))
  