Yea, I meant compiling to JS helped me reason through this function. 

It's hard to reason about (for me) all the implications of using splats along side the already existing confusion of the ideal behavior of this function, since they are so closely intertwined. 

As mentioned below I think we need to hammer down the expected behavior when the sync function returns
- undefined
- an array
- an item

After that the onus is on the reader to understand the language.