Named choices are already allowed in `selectInput`, but they do something slightly different than what you're proposing. The name of each item is the text that's displayed, and the value is the value that's sent to Shiny as `input$x`. For example, you might have:

```
input_select(choices = c(Two = 2, Six = 6, Eighty = 80))
```

The user would see the words, but the server would receive the numbers for the input value. However, the numbers will be sent as text strings, not as numeric values, since that's how the select values are represented in the browser. So you'd still need a wrapfun like this:

```
input_select(choices = c(Two = 2, Six = 6, Eighty = 80),
  wrapfun = function(x) as.numeric(x)
)
```