docs: def _concatenate_inner(self, direction):
      """Concatenates chunks based on each chunk's dependency.
  
      Args:
        direction (bool): Direction of concatenation process. True for forward.
      """
      tmp_bucket = []
      source_chunks = self if direction else self[::-1]
      target_chunks = ChunkList()
      for chunk in source_chunks:
        if (
            # if the chunk has matched dependency, do concatenation.
            chunk.dependency == direction or
            # if the chunk is SPACE, concatenate to the previous chunk.
            (direction is False and chunk.is_space())
            ):
          tmp_bucket.append(chunk)
          continue
        tmp_bucket.append(chunk)
        if not direction:
          tmp_bucket = tmp_bucket[::-1]
        new_word = ''.join([tmp_chunk.word for tmp_chunk in tmp_bucket])
        new_chunk = Chunk(new_word, pos=chunk.pos, label=chunk.label,
                          dependency=chunk.dependency)
        target_chunks.append(new_chunk)
        tmp_bucket = ChunkList()
      if tmp_bucket:
        target_chunks += tmp_bucket
      if not direction:
        target_chunks = target_chunks[::-1]
      self.list = target_chunks