Chaining Return Types

Something that bothers me about C is that it doesn't let you write chaining void returns:

void my_function() {
    return some_void_function(...);  /* this is not legal! */
}

That annoys me, because it makes it hard to write generic code that doesn't want the bad properties of a macro (repeating evaluation of arguments if used multiple times, etc.)...but throws a wrench in being able to abstract across return values.

But Ren-C has this covered! All states can be chained.

But what if you are writing a wrapped function, and want a type signature on the wrapper that matches what you are wrapping? I guess we could do this via COMPOSE on the spec of some kind:

my-function: func compose [
    return: (return-type-block-of :some-other-function)
    ...
][
    ...
    return some-other-function ...
]

Something along these lines, where you could add or remove elements of the type signature. :-/Anyway, I just wanted to mention that we're not yet at utopia in this medium, even if we're pretty much nailing the chaining part itself!