code: func Summarize(first, last net.IP) []Prefix {
  	if fip := first.To4(); fip != nil {
  		lip := last.To4()
  		if lip == nil {
  			return nil
  		}
  		return summarizeIPv4(fip, lip)
  	}
  	if fip := first.To16(); fip != nil && fip.To4() == nil {
  		lip := last.To16()
  		if lip == nil || last.To4() != nil {
  			return nil
  		}
  		return summarizeIPv6(fip, lip)
  	}
  	return nil
  }
docs: // Summarize summarizes the address range from first to last and
  // returns a list of prefixes.