code: func (c *configuration) oracle(goldParse *lingo.Dependency) (t transition) {
  	w1 := int(c.stackValue(1))
  	w2 := int(c.stackValue(0))
  
  	if w1 > 0 && goldParse.Head(w1) == w2 {
  		t.Move = Left
  		t.DependencyType = goldParse.Label(w1)
  		return
  	} else if w1 >= 0 && goldParse.Head(w2) == w1 && !c.hasOtherChildren(w2, goldParse) {
  		t.Move = Right
  		t.DependencyType = goldParse.Label(w2)
  
  		return
  	}
  	return // default transition is Shift
  }
docs: // oracle gets the gold transition given the state