original_string: function concat ()
    {
      $a = new AppendIterator;
      foreach ($this->getIterator () as $it)
        $a->append (iterator ($it));
      $this->setIterator ($a);
      return $this;
    }
code: function concat ()
    {
      $a = new AppendIterator;
      foreach ($this->getIterator () as $it)
        $a->append (iterator ($it));
      $this->setIterator ($a);
      return $this;
    }
code_tokens: function concat ( ) { $ a = new AppendIterator ; foreach ( $ this -> getIterator ( ) as $ it ) $ a -> append ( iterator ( $ it ) ) ; $ this -> setIterator ( $ a ) ; return $ this ; }
docstring: Assumes the current iterator is a sequence of iterables and sets a new iterator that iterates over all of them.
  
  >**Caution**
  <p><br>When using {@see iterator_to_array()} to copy the values of the resulting sequence into an array, you
  have to set the optional `use_key` argument to `FALSE`.<br>
  When `use_key` is not `FALSE` any keys reoccuring in inner iterators will get overwritten in the returned array.
  <p><br>When using {@see Flow::all()} the same problem may occur.<br>
  You can use {@see Flow::pack()} or {@see Flow::reindex()} instead, if you need a monotonically increasing
  sequence of keys.
  
  @return $this
docstring_tokens: Assumes the current iterator is a sequence of iterables and sets a new iterator that iterates over all of them .