docs: @Override
    public Set<SeparatorSet> getComputableOutboundMessages(Map<SeparatorSet, Factor> inboundMessages) {
      Preconditions.checkNotNull(inboundMessages);
  
      Set<SeparatorSet> possibleOutbound = Sets.newHashSet();
      for (Map.Entry<SeparatorSet, Factor> inboundMessage : inboundMessages.entrySet()) {
        if (inboundMessage.getValue() == null) {
          possibleOutbound.add(inboundMessage.getKey());
        }
      }
  
      if (possibleOutbound.size() == 1) {
        return possibleOutbound;
      } else if (possibleOutbound.size() == 0) {
        return inboundMessages.keySet();
      } else {
        return Collections.emptySet();
      }
    }