      cpdef size_t cluster(self, size_t i) except *:
          return self.v.at(i).cluster
  
      cpdef bint check_flag(self, size_t i, size_t flag_id) except *:
          return lexeme_check_flag(self.v[i], flag_id)
  
      cpdef unicode string_view(self, size_t i, size_t view_id):
          return lexeme_string_view(self.v.at(i), view_id)
  
      # Provide accessor methods for the features supported by the language.
 
</s> remove     cdef vector[LexemeC*] v
 </s> add     cdef vector[LexemeC*] *v </s> remove         cdef bytes utf8_string = self.v[i].string[:self.v[i].length]
 </s> add         cdef bytes utf8_string = self.v.at(i).string[:self.v.at(i).length] </s> remove             lexemes[i] = tokens.v[j]
 </s> add             lexemes[i] = tokens.v[0][j]
        return lexeme_check_flag(self.v.at(i), flag_id)
      cpdef size_t cluster(self, size_t i) except *:
          return self.v.at(i).cluster
  
      cpdef bint check_flag(self, size_t i, size_t flag_id) except *:
        return lexeme_check_flag(self.v.at(i), flag_id)
  
      cpdef unicode string_view(self, size_t i, size_t view_id):
          return lexeme_string_view(self.v.at(i), view_id)
  
      # Provide accessor methods for the features supported by the language.
keep keep keep keep replace keep keep keep keep keep
 * Switch to using a heap-allocated vector in tokens 
spacy/tokens.pyx