code: func (p *Program) Clone() *Program {
  	if p == nil {
  		return nil
  	}
  	cp := *p
  	if len(cp.otherTags) != 0 {
  		cp.otherTags = make([]tagPair, len(cp.otherTags))
  	}
  	copy(cp.otherTags, p.otherTags)
  	cp.id = -1
  	cp.owner = nil
  	return &cp
  }
docs: // Clone returns a deep copy of the Program.