I'll mention that for function calls, I was thinking it would be nice if it could name a refinement and a value.
>> data: '(a b c) >> append/[dup: 1 + 2] data <foo> == (a b c <foo> <foo> <foo>)
Given how common this would be, it's probably better to just use a WORD! instead of a SET-WORD! and people will get the idea, not expecting DUP to be a function call or something of that sort:
>> data: '(a b c) >> append/[dup 1 + 2] data <foo> == (a b c <foo> <foo> <foo>)
Or maybe this is a job for TUPLE?
>> data: '(a b c) >> append/dup.(1 + 2) data <foo> == (a b c <foo> <foo> <foo>)
Inert things could be just provided directly, like
It wouldn't be great for everything, and you'd want to use APPLY for anything verbose. But it could be convenient in some cases.
People very frequently request seeing the connection between the refinement and its value more obviously.