code: func (rule *Rule) Compare(other *Rule) int {
  	if rule == nil {
  		if other == nil {
  			return 0
  		}
  		return -1
  	} else if other == nil {
  		return 1
  	}
  	if cmp := rule.Head.Compare(other.Head); cmp != 0 {
  		return cmp
  	}
  	if cmp := util.Compare(rule.Default, other.Default); cmp != 0 {
  		return cmp
  	}
  	if cmp := rule.Body.Compare(other.Body); cmp != 0 {
  		return cmp
  	}
  	return rule.Else.Compare(other.Else)
  }
docs: // Compare returns an integer indicating whether rule is less than, equal to,
  // or greater than other.