@NotNull
  @Override
  final String wrap(ChainVariable inVar, ChainVariable outVar, String code, StreamToLoopReplacementContext context) {
    // Cannot inline "result" as wrap may register more beforeSteps
    String result = wrap(outVar, code, context);
    return context.drainBeforeSteps() + result + context.drainAfterSteps();
  }
@NotNull
  @Override
  final String wrap(ChainVariable inVar, ChainVariable outVar, String code, StreamToLoopReplacementContext context)