@NotNull
  @Override
  public TraceInfo resolve(@NotNull StreamCall call, @NotNull Value value) {
    if (value instanceof ArrayReference trace) {
      final Value before = trace.getValue(0);
      final Value after = trace.getValue(1);
      if (before instanceof ArrayReference && after instanceof ArrayReference) {
        final Map<Integer, TraceElement> beforeTrace = resolveTrace((ArrayReference)before);
        final Map<Integer, TraceElement> afterTrace = resolveTrace((ArrayReference)after);
        return new ValuesOrderInfo(call, beforeTrace, afterTrace);
      }
    }

    throw new UnexpectedValueException("peek operation trace is wrong format");
  }
@NotNull
  @Override
  public TraceInfo resolve(@NotNull StreamCall call, @NotNull Value value)