Branko Čibej wrote:

> Move away/from with Id is essentially introducing a namespace for temporary
> paths unrelated to the tree structure. Therefore you can change notation and
>  keep only one move operation with three variants:
> 

> move(a,b): direct move of node to new path
> move(a,tmp(1)): move to temporary slot
> move(tmp(1),b): move from temporary slot
> 

> N.b. this does not imply a single conflated move API on the code level, it
> merely describes the protocol.> 
> Making the edit driver assign temporary slots explicitly is better than
> forcing the receiver to second-guess the driver's intent,
I think what you're saying is that, in cases where the driver can issue a 
move(a,b) instead of a (functionally equivalent) pair of move-away immediately 
followed by move-here, then the receiver is likely to be able to process that 
single move more efficiently.  So having the three methods available is better 
than just having the latter two.

Do I understand you correctly?

We should probably just leave it as a "quality of implementation" issue for the 
editor driver to prefer single move(a,b) instructions over pairs of move-away, 
move-here.  We could try to come up with a requirement that it must do so in 
certain cases (starting with collapsing adjacent pairs of move-away, 
move-here), but I think this may be rather difficult to define fully and hard 
to justify.

> and also makes validating the drive easier.

I'm not sure what you're thinking about validating the editor drive being 
easier.
- Julian

Reply via email to