                         LEFT: {'ROOT': True}, BREAK: {'ROOT': True}}
          for raw_text, sents in gold_parses:
              for (ids, words, tags, heads, labels, iob), ctnts in sents:
                  for child, head, label in zip(ids, heads, labels):
                      if label != 'ROOT':
                          if head < child:
                              move_labels[RIGHT][label] = True
                          elif head > child:
                              move_labels[LEFT][label] = True
          return move_labels
 
</s> remove         move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {},
                       LEFT: {'ROOT': True}, BREAK: {'ROOT': True}}
 </s> add         move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {'root': True},
                       LEFT: {'root': True}, BREAK: {'root': True}} </s> remove     cdef void set_break(self, int i) nogil:
        if 0 <= i < self.length:
            self._sent[i].sent_end = True
            self._break = i
 </s> add     cdef void set_break(self, int _) nogil:
        self._sent[self.B(0)].sent_end = True
        self._break = self._b_i
                    if label != 'root':
                         LEFT: {'ROOT': True}, BREAK: {'ROOT': True}}
          for raw_text, sents in gold_parses:
              for (ids, words, tags, heads, labels, iob), ctnts in sents:
                  for child, head, label in zip(ids, heads, labels):
                    if label != 'root':
                          if head < child:
                              move_labels[RIGHT][label] = True
                          elif head > child:
                              move_labels[LEFT][label] = True
          return move_labels
keep keep keep keep replace keep keep keep keep keep
 * Fixes to unshift/fast-forward strategy. Getting 91.55 greedy on NW dev, gold preproc 
spacy/syntax/arc_eager.pyx