function nextOuter ()
  {
    while ($this->inner->valid ()) {
      $v = $this->inner->current ();
      if (is_iterable ($v)) {
        $this->outer = iterator ($v);
        $this->outer->rewind ();
        if ($this->outer->valid ()) return;
        $this->inner->next ();
      }
      else break;
    }
    $this->outer = null;
  }