anchor.diff:                         if (symbolp binding)
                            collect `(,binding ,binding)
                          else collect binding))
  -  `(nlet-2 ,name ,bindings ,@body))
  -
  -(defmacro nlet-1 (name (&rest bindings) &body body)
  -  `(funcall
  -    (named-lambda ,name (mapcar #'first bindings)
  -      ,@body)
  -    ,@(mapcar #'second bindings)))
  -
  -(defmacro nlet-2 (name (&rest bindings) &body body)
     (multiple-value-bind (body decls)
         (parse-body body)
       (let* ((bindings (mapcar #'ensure-list bindings))
  
positive.code: (in-package #:serapeum)
  
  (export '(nlet
            collecting
            summing
            minimizing
            maximizing))
  
  ;;;# nlet
  
  
negative.code:                 (declare (ignorable (function ,sum)))
                  ,@body)
                ,n)))))
  