docs: void add(long reportingHsid, final Map<Long,Boolean> failed) {
          // skip if the reporting site did not belong to the pre
          // failure mesh
          if (!m_hsids.contains(reportingHsid)) return;
  
          // ship if the reporting site is reporting itself dead
          Boolean harakiri = failed.get(reportingHsid);
          if (harakiri != null && harakiri.booleanValue()) return;
  
          Set<Long> dead = Sets.newHashSet();
  
          for (Map.Entry<Long, Boolean> e: failed.entrySet()) {
              // skip if the failed site did not belong to the
              // pre failure mesh
              if (!m_hsids.contains(e.getKey())) continue;
  
              m_reported.put(e.getKey(), reportingHsid);
              // if the failure is witnessed add it to the dead graph
              if (e.getValue()) {
                  m_dead.put(e.getKey(), reportingHsid);
                  dead.add(e.getKey());
              }
          }
          // once you are witnessed dead you cannot become undead,
          // but it is not the case for alive nodes, as they can
          // die. So remove all what the reporting site thought
          // was alive before this invocation
          removeValue(m_alive, reportingHsid);
  
          for (Long alive: Sets.difference(m_hsids, dead)) {
              m_alive.put(alive, reportingHsid);
          }
      }