code: func (m *SignedMessage) Verify(verifier Signer) (bool, error) {
  	if verifier == nil {
  		return false, errors.New("nil verifier")
  	}
  
  	sig := m.Sig
  	m.Sig = nil
  	defer func() {
  		m.Sig = sig
  	}()
  
  	bytes, err := json.Marshal(m)
  	if err != nil {
  		return false, errors.Wrap(err, "sign error: json.Marshal returned")
  	}
  
  	return verifier.Verify(sig, bytes)
  }
docs: // Verify verifies the signature over Payload stored in Sig