Make a promise explicit by converting into a formula.
f_capture.RdThis should be used sparingly if you want to implement true non-standard evaluation with 100% magic. I recommend avoiding this unless you have strong reasons otherwise since requiring arguments to be formulas only adds one extra character to the inputs, and otherwise makes life much much simpler.
Examples
f_capture(a + b)
#> ~a + b
#> <environment: 0x60f6c714c8b0>
dots_capture(a + b, c + d, e + f)
#> [[1]]
#> ~a + b
#> <environment: 0x60f6c714c8b0>
#>
#> [[2]]
#> ~c + d
#> <environment: 0x60f6c714c8b0>
#>
#> [[3]]
#> ~e + f
#> <environment: 0x60f6c714c8b0>
#>
# These functions will follow a chain of promises back to the
# original definition
f <- function(x) g(x)
g <- function(y) h(y)
h <- function(z) f_capture(z)
f(a + b + c)
#> ~a + b + c
#> <environment: 0x60f6c714c8b0>