#define Tree_getsub(S) Tree_get##S##subtree

Tree_getsub(right)
Tree_getsub(left)

#define Tree_op(S1,S2) \
  tmp = Tree_getsub(S1); \
  Tree_getsub(S1) = Tree_getsub(S2); \
  Tree_getsub(S2) = tmp;
  
Tree_op(left, right)

Tree_op(right, left)


