private void mapEdgeIndicesToEdges(int[] values,
                                     @NotNull List<List<Integer>> edgeIndices,
                                     @NotNull List<List<StatEdge>> caseEdges,
                                     @NotNull List<List<@Nullable Exprent>> caseValues) {
    for (List<Integer> indices : edgeIndices) {
      List<StatEdge> edges = new ArrayList<>(indices.size());
      List<Exprent> valueExprents = new ArrayList<>(indices.size());
      List<StatEdge> firstSuccessors = first.getSuccessorEdges(EdgeType.DIRECT_ALL);
      for (Integer in : indices) {
        int index = in == firstSuccessors.size() ? 0 : in;
        edges.add(firstSuccessors.get(index));
        valueExprents.add(index == 0 ? null : new ConstExprent(values[index - 1], false, null));
      }
      caseEdges.add(edges);
      caseValues.add(valueExprents);
    }
  }
private void mapEdgeIndicesToEdges(int[] values,
                                     @NotNull List<List<Integer>> edgeIndices,
                                     @NotNull List<List<StatEdge>> caseEdges,
                                     @NotNull List<List<@Nullable Exprent>> caseValues)