code: func (conn *Conn) sendError(e Error, dest string, serial uint32) {
  	msg := new(Message)
  	msg.Type = TypeError
  	msg.serial = conn.getSerial()
  	msg.Headers = make(map[HeaderField]Variant)
  	msg.Headers[FieldDestination] = MakeVariant(dest)
  	msg.Headers[FieldErrorName] = MakeVariant(e.Name)
  	msg.Headers[FieldReplySerial] = MakeVariant(serial)
  	msg.Body = e.Body
  	if len(e.Body) > 0 {
  		msg.Headers[FieldSignature] = MakeVariant(SignatureOf(e.Body...))
  	}
  	conn.outLck.RLock()
  	if !conn.closed {
  		conn.out <- msg
  	}
  	conn.outLck.RUnlock()
  }
docs: // sendError creates an error message corresponding to the parameters and sends
  // it to conn.out.