code: func (d *Device) Dial(ctx context.Context, a ble.Addr) (ble.Client, error) {
  	// d.HCI.Dial is a blocking call, although most of time it should return immediately.
  	// But in case passing wrong device address or the device went non-connectable, it blocks.
  	cln, err := d.HCI.Dial(ctx, a)
  	return cln, errors.Wrap(err, "can't dial")
  }
docs: // Dial ...