@NotNull
  @Override
  public DefinitionMap join(@NotNull List<? extends DefinitionMap> ins) {
    if (ins.size() == 0) {
      return NEUTRAL;
    }
    DefinitionMap result = ins.get(0);
    for (int i = 1; i < ins.size(); i++) {
      result = result.withMerged(ins.get(i));
    }

    return result;
  }
@NotNull
  @Override
  public DefinitionMap join(@NotNull List<? extends DefinitionMap> ins)