In the article "Division by three" following algorithm is suggested for building a bijection between sets A and B, given that there's a bijection between {0,1}*A and {0,1}*B. First, we build a special kind of directed cycle graph where each edge designates an element from A or B, and direction is determined by whether we start/end in (0, _) or (1, _). Here's an illustration from the article itself.
Next, following algorithm is described (by matching parentheses it is meant to arrows in different directions):
So if there are only necklaces, and no infinite strings, we proceed as follows. We treat each necklace separately. First we try matching parentheses. If this, works, fine. If not, all the unmatched parentheses face the same way around the loop, and the way they face determines a direction around the loop. Let us say that the direction in which the arrows point is ‘down the street’; that is, the open ends of the unmatched parentheses face ‘up the street’. The unmatched parentheses alternate in color, so if every blue parenthesis marries the next unmatched (red) parenthesis up the street, we will have successfully paired up all the parentheses on the street.
What I miss from this is why we need to determine direction - why it won't be sufficient to just choose one direction, whether it will be up the street or down the street and "marry" the arrows?