anchor.diff:    ;; c-let
   
  -(defun make-bindings (bindings rest)
  +(defun make-bindings (free-default bindings rest)
     (labels ((maybe-make-macro (bindings rest tmp v c-type)
                (with-gensyms (r)
                  `((macrolet ((,v (&rest ,r)
  
positive.code:     (first (rec bindings rest))))
  
  (defmacro c-let (bindings &body body)
    (make-bindings bindings body :free-default nil))
  
  (defmacro c-with (bindings &body body)
    (make-bindings bindings body :free-default t))
  
negative.code:            (rec (bindings rest)
               (if bindings
                   (with-gensyms (tmp)
                     (destructuring-bind (v c-type &key (count 1) (free free-default) ptr)
                         (car bindings)
                       (if ptr
                           (if (keywordp c-type)
  