TransferSubset

ABSTRACT

An animation that transfer the a subset of the from variable to the into variable. In this case, type information is always lost, even if the selection is the entirey of the from variable. Also, to make semantics clear, we required that the into variable be in line with its follower (that is, there cannot be any changes to the into variable since its last Set). This is easy to fix by simply calling Set: on the into variable right before this animation if you need to

IMPORTANT ELEMENT

TransferSubset is important for denoting ownership. It's also good for moving variables into auxiliary trees for temporary purposes. This is especially helpful when you want two animations on the same variable in parallel, so you use TransferSubset to split the variable into two auxiliary ones, perform animations on each half, and then transfer the contents back to the main variable.

PARAMETERS
from&The sources of the animation. Note that from can be a variable tree
tag_predicate(tag)This specifies the subset of the from variable that should be transferred over to the target into variabl
into&The destination of the animation. Note that into CANNOT be a variable tree, it must be a single variable
RETURN

An animation the executes the transfer. The from iterators and followers are all the unselected portions, whereas the into iterators and followers are going to be iterator original content + the transferred content. For all variables, type information is elided.

DECLARATION
func TransferSubset([subset] {[main] {from&, tag_predicate(tag)}}, into&)