anchor.diff:  (defpackage :cjf-stdlib
     (:use :cl :split-sequence)
     (:export :mget :mget* :println :-> :->string :keys :ht :plist->alist :hset
  -   :slurp :alist->ht :<- :mset! :remove-from-plist :mset
  +   :slurp :alist->ht :<- :mset! :remove-from-plist :mset :<> :tee :rmapcar :tap
      ; re-export from split-sequence
      :split-sequence :split-sequence-if :split-sequence-if-not
      ))
  
positive.code:   "Shorthand for let for a single binding."
    `(let ((,var ,val))
       ,@body))
  
negative.code:       (setf (cdr (assoc key obj)) value)
        (nconc obj (list (cons key value)))))
  
  (defgeneric mset (obj key value)
    (:documentation "Return a mapping with value associated with key.  Don't modify the original mapping."))
  
  (defmethod mset ((obj list) key value)
  