Moves may create type inconsistencies
Example: move a "position" A as a "supportive argument" to another position B. Through this move, the "components" of A become components of an argument. And arguments normally do not have components. Probably some type-checking of the children nodes should be done when a node is moved and retyped.