- my $kids = $set->_kids;
- my $links = $set->_links;
- my $conn = $set->connector;
-
- push @$kids, shift @_ unless @$kids;
- return $set unless @_;
-
- my $prev = $kids->[-1];
- for my $i (0 .. $#_) {
- my $next = $_[$i];
- my $link = $set->$conn($#$kids, $prev, $next);
- confess('Invalid connector') unless defined $link and not blessed $link;
- push @$links, $link;
- push @$kids, $next;
- $prev = $next;
- }