anchor.diff:        (setf (value place-1) old-value-1
               (value place-2) old-value-2))))
   
  -(define-gesture-name :swap :pointer-button-press (:left :control))
  -
   (define-drag-and-drop-translator drag-swap-place-values
       (place command place inspector-command-table
  -     :gesture :swap
  +     :gesture :select
        :tester ((object from-object)
                 (cond ((not from-object)
                        (safe-valuep object)) ; TODO should work for unbound?
  
positive.code: ;;;; Copyright (C) 2018, 2019 Jan Moringen
  ;;;;
  ;;;; This library is free software; you can redistribute it and/or
  ;;;; modify it under the terms of the GNU Library General Public
  
negative.code:         (setf (value to-place) new-value
                (state to-place) (make-object-state new-value to-place)))))
  
  (define-gesture-name :copy :pointer-button-press (:left :control))
  
  (define-drag-and-drop-translator drag-copy-place-value
      (place command place inspector-command-table
       :gesture :copy
       :tester ((object from-object)
                (cond ((not from-object)
                       (safe-valuep object)) ; TODO should work for unbound?
  