anchor.diff:  
   (defpackage :cjf-stdlib
     (:use :cl)
  -  (:export :mget :mget* :println :-> :->string)
  +  (:export :mget :mget* :println :-> :->string :keys :ht)
     )
   
   (defpackage :cjf-stdlib-test
  
positive.code: 
  (defun threading-test ()
    (assert (equal (-> "" helper-a (helper-b "x") helper-c) "abxc")))
  
negative.code:           `(-> (,(car rest) ,first) ,@(cdr rest)))
        first))
  
  (defgeneric keys (obj)
    (:documentation "Get the keys from a mapping (alist, plist, or hash table)."))
  
  (defmethod keys ((h hash-table))
    (loop for key being the hash-keys of h collect key))
  
  (defmethod keys ((l list))
    (if (alist-p l)
        (mapcar #'car l)
        (loop for i in l by #'cddr collect i)))
  
  (defun ht (&rest plist)
    (let ((h (make-hash-table)))
      (mapc (lambda (k) (setf (gethash k h) (mget plist k))) (keys plist))
      h))
  
  (in-package :cjf-stdlib-test)
  
  (defclass test-obj-with-slots ()
  