@NotNull
  @Override
  public Object2IntMap<GrVariable> join(@NotNull List<? extends Object2IntMap<GrVariable>> ins) {
    if (ins.isEmpty()) {
      return NEUTRAL;
    }
    if (ins.size() == 1) {
      return ins.get(0);
    }
    final Object2IntMap<GrVariable> result = new Object2IntOpenHashMap<>();
    for (Object2IntMap<GrVariable> i : ins) {
      merge(result, i);
    }
    return result;
  }
@NotNull
  @Override
  public Object2IntMap<GrVariable> join(@NotNull List<? extends Object2IntMap<GrVariable>> ins)