                      ancestors = token.ancestors
                      for ancestor in ancestors:
                          ancestor_i = ancestor.i - self.c.start
                          if ancestor_i in range(length):
                              array[i, head_col] = ancestor_i - i
  
                  # if there is no appropriate ancestor, define a new artificial root
                  value = array[i, head_col]
                  if (i+value) not in range(length):
                      new_root = old_to_new_root.get(ancestor_i, None)
 
</s> remove                         array[i, head_col] = new_root - i
 </s> add                         array[i, head_col] = numpy.int32(new_root - i).astype(numpy.uint64) </s> remove             values.append([vocab.strings.add(v) for v in value])
    array = numpy.asarray(values, dtype="uint64")
 </s> add             row = [vocab.strings.add(v) for v in value]
        values.append([numpy.array(v, dtype=numpy.int32).astype(numpy.uint64) if v < 0 else v for v in row])
    array = numpy.array(values, dtype=numpy.uint64) </s> remove             values.append([vocab.strings.add(h) if h is not None else MISSING_DEP for h in value])
 </s> add             row = [vocab.strings.add(h) if h is not None else MISSING_DEP for h in value]
                            array[i, head_col] = numpy.int32(ancestor_i - i).astype(numpy.uint64)
                      ancestors = token.ancestors
                      for ancestor in ancestors:
                          ancestor_i = ancestor.i - self.c.start
                          if ancestor_i in range(length):
                            array[i, head_col] = numpy.int32(ancestor_i - i).astype(numpy.uint64)
  
                  # if there is no appropriate ancestor, define a new artificial root
                  value = array[i, head_col]
                  if (i+value) not in range(length):
                      new_root = old_to_new_root.get(ancestor_i, None)
keep keep keep keep replace keep keep keep keep keep
 Cast to uint64 for all array-based doc representations (#11933)

* Convert all individual values explicitly to uint64 for array-based doc representations

* Temporarily test with latest numpy v1.24.0rc

* Remove unnecessary conversion from attr_t

* Reduce number of individual casts

* Convert specifically from int32 to uint64

* Revert "Temporarily test with latest numpy v1.24.0rc"

This reverts commit eb0e3c5006515b9a7ff52bae59484c909b8a3f65.

* Also use int32 in tests 
spacy/tokens/span.pyx