anchor.diff:                                          color-mask-indices
                                           tex-unit-ids
                                           buffer-targets
  -                                        scissor-viewport-indices)
  +                                        scissor-viewport-indices
  +                                        ubo-indices
  +                                        ssbo-indices)
                                          &body body)
     (assert (member program '(t nil)))
     (assert (member stencil '(t nil)))
  
positive.code:   (let ((color-mask-indices (uiop:ensure-list color-mask-indices))
          (tex-unit-ids (uiop:ensure-list tex-unit-ids))
          (buffer-targets (uiop:ensure-list buffer-targets))
          (scissor-viewport-indices (uiop:ensure-list scissor-viewport-indices)))
      (assert (not (eq (first color-mask-indices) 'quote)))
      (assert (not (eq (first tex-unit-ids) 'quote)))
      (assert (not (eq (first buffer-targets) 'quote)))
      (assert (not (eq (first scissor-viewport-indices) 'quote)))
      (let ((ctx (gensym "ctx")))
        `(with-cepl-context (,ctx)
           (unwind-protect (progn ,@body)
  
negative.code:                           ',color-mask-indices
                            ',tex-unit-ids
                            ',buffer-targets
                            ',scissor-viewport-indices
                            ',ubo-indices
                            ',ssbo-indices))))))
  
  (defn restore-state ((context cepl-context)
                       (program boolean)
  