code: func (head *Head) Compare(other *Head) int {
  	if head == nil {
  		if other == nil {
  			return 0
  		}
  		return -1
  	} else if other == nil {
  		return 1
  	}
  	if cmp := Compare(head.Args, other.Args); cmp != 0 {
  		return cmp
  	}
  	if cmp := Compare(head.Name, other.Name); cmp != 0 {
  		return cmp
  	}
  	if cmp := Compare(head.Key, other.Key); cmp != 0 {
  		return cmp
  	}
  	return Compare(head.Value, other.Value)
  }
docs: // Compare returns an integer indicating whether head is less than, equal to,
  // or greater than other.