public static @NotNull Graph<Instruction> createGraph(final Instruction @NotNull [] flow) {
    return new Graph<Instruction>() {
      private final @NotNull List<Instruction> myList = Arrays.asList(flow);

      @Override
      public @NotNull Collection<Instruction> getNodes() {
        return myList;
      }

      @Override
      public @NotNull Iterator<Instruction> getIn(Instruction n) {
        return n.allPred().iterator();
      }

      @Override
      public @NotNull Iterator<Instruction> getOut(Instruction n) {
        return n.allSucc().iterator();
      }
    };
  }
public static @NotNull Graph<Instruction> createGraph(final Instruction @NotNull [] flow)