anchor.diff:  	(m4:m* (collect-inverse-to to-space dest-root)
   	       (%rspace-to-rspace-transform from-space dest-root)))))
   
  +(defun %rspace-to-mspace-transform (mspace rspace)
  +  (let* ((only-sr (%mspace-only-sr mspace))
  +	 (neighbour-id (sr-target-id only-sr))
  +	 (from-neighbour-to-mspace (m4:affine-inverse (sr-to only-sr)))
  +	 (rspace-id (%space-nht-id rspace)))
  +    (if (= rspace-id neighbour-id)
  +	from-neighbour-to-mspace
  +	(m4:m* from-neighbour-to-mspace
  +	       (%rspace-to-rspace-ids-transform neighbour-id rspace-id)))))
  +
   (defun %set-rspace-transform (from-space to-space transform)
     (unless (and (= (%space-kind from-space) +relational-space+)
   	       (= (%space-kind to-space) +relational-space+))
  
positive.code: 	to-neighbour
  	(m4:m* (%rspace-to-rspace-ids-transform neighbour-id rspace-id)
  	       to-neighbour))))
  
  ;;----------------------------------------------------------------------
  ;; Relational
  
negative.code: 		   %hspace-to-rspace-transform
  		   %hspace-to-hspace-transform))
    (kind-case* (from-space to-space)
  	      :m->m (%mspace-to-mspace-transform from-space to-space)
  	      :m->r (%mspace-to-rspace-transform from-space to-space)
  	      :m->h (%mspace-to-hspace-transform from-space to-space)
  
  	      :r->m (%rspace-to-mspace-transform from-space to-space)
  	      :r->r (%rspace-to-rspace-transform from-space to-space initial-m4)
  	      :r->h (%rspace-to-hspace-transform from-space to-space)
  
  