anchor.diff:     :word-separators-to-replace (list #\-)))
   
   (defun lisp->keyword (phrase)
  -  (combine-symbols phrase :keyword))
  -
  -(defun combine-symbols (phrase &optional (package *package*))
  +  (combine-symbols phrase :package :keyword))
  +
  +(defun combine-symbols (phrase &key (package *package*) separator)
     (intern
      (normalize-capitalization-and-spacing
       phrase
       :capitalize T
  -    :word-separators #\-
  +    ;; these are flattened so if nil it will just use #\-
  +    :word-separators (list separator #\-)
       :word-separators-to-replace nil)
      package))
   
  
positive.code:     (labels ((%write (c)
                 (etypecase c
                   (character (write-char c str))
                   (string (write-string c str))))
               (write-c (c)
                 (cond ((string= c replacement-sep)
                        (unless just-wrote-separator?
  
negative.code:     (t (princ-to-string s))))
  
  (defmacro ensure-list! (place)
    `(setf ,place (alexandria:ensure-list ,place)))
  
  (defmacro ensure-flat-list! (place)
    `(setf ,place (alexandria:flatten ,place)))
  
  (defun normalize-capitalization-and-spacing
      (s &key (capitalize :each-word) (word-separators #\space)
  