static Result of(@NotNull Map<TraceElement, List<TraceElement>> direct, @NotNull Map<TraceElement, List<TraceElement>> reverse) {
      return new Result() {
        @NotNull
        @Override
        public Map<TraceElement, List<TraceElement>> getDirectOrder() {
          return direct;
        }

        @NotNull
        @Override
        public Map<TraceElement, List<TraceElement>> getReverseOrder() {
          return reverse;
        }
      };
    }
static Result of(@NotNull Map<TraceElement, List<TraceElement>> direct, @NotNull Map<TraceElement, List<TraceElement>> reverse)