code: func InsertPlan(parent Plan, child Plan, insert Plan) error {
  	err := child.ReplaceParent(parent, insert)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	err = parent.ReplaceChild(child, insert)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	insert.AddChild(child)
  	insert.AddParent(parent)
  	return nil
  }
docs: // InsertPlan means inserting plan between two plans.