code: func (m *Memberlist) refute(me *nodeState, accusedInc uint32) {
  	// Make sure the incarnation number beats the accusation.
  	inc := m.nextIncarnation()
  	if accusedInc >= inc {
  		inc = m.skipIncarnation(accusedInc - inc + 1)
  	}
  	me.Incarnation = inc
  
  	// Decrease our health because we are being asked to refute a problem.
  	m.awareness.ApplyDelta(1)
  
  	// Format and broadcast an alive message.
  	a := alive{
  		Incarnation: inc,
  		Node:        me.Name,
  		Addr:        me.Addr,
  		Port:        me.Port,
  		Meta:        me.Meta,
  		Vsn: []uint8{
  			me.PMin, me.PMax, me.PCur,
  			me.DMin, me.DMax, me.DCur,
  		},
  	}
  	m.encodeAndBroadcast(me.Addr.String(), aliveMsg, a)
  }
docs: // refute gossips an alive message in response to incoming information that we
  // are suspect or dead. It will make sure the incarnation number beats the given
  // accusedInc value, or you can supply 0 to just get the next incarnation number.
  // This alters the node state that's passed in so this MUST be called while the
  // nodeLock is held.