code: func (c *Client) WriteTo(p *Packet, addr net.HardwareAddr) error {
  	pb, err := p.MarshalBinary()
  	if err != nil {
  		return err
  	}
  
  	f := &ethernet.Frame{
  		Destination: p.TargetHardwareAddr,
  		Source:      p.SenderHardwareAddr,
  		EtherType:   ethernet.EtherTypeARP,
  		Payload:     pb,
  	}
  
  	fb, err := f.MarshalBinary()
  	if err != nil {
  		return err
  	}
  
  	_, err = c.p.WriteTo(fb, &raw.Addr{HardwareAddr: addr})
  	return err
  }
docs: // WriteTo writes a single ARP packet to addr. Note that addr should,
  // but doesn't have to, match the target hardware address of the ARP
  // packet.