code: func (c *configuration) apply(t transition) {
  	logf("Applying %v", t)
  	w1 := int(c.stackValue(1))
  	w2 := int(c.stackValue(0))
  
  	if t.Move == Left {
  		c.AddArc(w2, w1, t.DependencyType)
  		c.removeSecondTopStack()
  	} else if t.Move == Right {
  		c.AddArc(w1, w2, t.DependencyType)
  		c.removeTopStack()
  	} else {
  		c.shift()
  	}
  }
docs: // apply applies the transition