@Nullable
  @Override
  public ArgumentMapping<? extends CallParameter> applyTo(@NotNull List<? extends Argument> arguments, @NotNull PsiElement context) {
    final int argumentCount = arguments.size();
    final int position = myPosition < 0
                         ? isVararg()
                           ? myPosition + argumentCount + myArguments.size()
                           : myPosition + getParameterCount()
                         : myPosition;
    if (position < 0 || argumentCount < position) {
      return null;
    }
    final List<? extends Argument> uncurriedArguments = ContainerUtil.concat(
      arguments.subList(0, position),
      myArguments,
      arguments.subList(position, argumentCount)
    );
    return myOriginal.applyTo(uncurriedArguments, context);
  }
@Nullable
  @Override
  public ArgumentMapping<? extends CallParameter> applyTo(@NotNull List<? extends Argument> arguments, @NotNull PsiElement context)