Geração de funções; alterar padrões de outras funções (parcial)

Eu tenho a necessidade de um gerador de função que use outra função e quaisquer argumentos dessa função e defina novos padrões. Eu pensei @ hadleypryr::partial foi essa função mágica. Ele faz exatamente o que eu quero, exceto que você não pode alterar esse novo padrão. Então aqui eu posso mudarsep no meu novopaste função, mas não o novo padrão decollapse = "_BAR_". Como posso fazerpartial execute dessa maneira (ou seja, o padrão écollapse = "_BAR_" mas ative a configuração paracollapse = NULL se desejado)? Se isso não for possível compartial existe uma maneira de reescrever o código parapartial para fazer isso:https://github.com/hadley/pryr/blob/master/R/partial.r

library(pryr)
.paste <- pryr::partial(paste, collapse = "_FOO_")

.paste(1:5)
.paste(1:5, LETTERS[1:5], sep="_BAR_")
.paste(1:5, collapse=NULL)

> .paste(1:5)
[1] "1_FOO_2_FOO_3_FOO_4_FOO_5"

> .paste(1:5, LETTERS[1:5], sep="_BAR_")
[1] "1_BAR_A_FOO_2_BAR_B_FOO_3_BAR_C_FOO_4_BAR_D_FOO_5_BAR_E"

> .paste(1:5, collapse=NULL)
Error in paste(collapse = "_FOO_", ...) : 
  formal argument "collapse" matched by multiple actual arguments

questionAnswers(3)

yourAnswerToTheQuestion