Instead of "expression-arity", I would suggest
"coarity" (as the dual to "arity")
+1
I would say that restricting a procedure named "identity" to just one value is not the right thing. (As you said, a single-valued version can be helpful for some optimizations, but I wouldn't call it identity.)
One reason why I added the name "identity" was to document that a portable procedure named "identity" should accept an arbitrary number of arguments.
Now I tend to agree. And it doesn't really conflict with 1-1 identity but just a natural extension... probably I should come up with more sophisticated optimization for 'values' so that it doesn't need to put such artificial restrictions.
I'm still unsure whether we need an alias of 'values', though.
That's a very unfortunate name-clash. SRFI 210's compose is, of course, a monadic composition much like SRFI 189's maybe-compose (we are talking about the identity monad in the context of SRFI 210). So we should simultaneously change both SRFI 210's and SRFI 189's names for the from-left-to-right composition procedures.
(Added John and Wolfgang as addressees because they created SRFI 189.)
Do you have a good alternative name?
The discussion of John in another reply does have a point; the term 'compose' can be used either way. But we do want to avoid the same name used differently if possible.
For the two argument case, I feel ((compose f g) x) == f(g(x)) has somewhat been established (e.g. SICP uses it). Extending it to more than two procedures and arbitrary arity naturally follows. I also found Racket uses this order. If we can come up with a different name for the left-to-right order it would be the best.