Why using `_.chain` is a mistake.
Izaak Schroeder
20214

I can see why the order of pipe/flow might seem more natural, but I’ve sort of trained myself to think of compose as such.

Since compose(f,g,h)(x) is really f(g(h(x))) the order is actually preserved from the “actual” case to the utility function case, not backwards. And looking just at the utility method compose case, you can sort of think of passing a value into a compose as literally smooshing everything together. And what can smoosh? Well, the x is passed in on the right, right? compose(f,g,h)(x) So it hits the rightmost function (h), and then the result is a value (or a function) that can then be smooshed into the next function, and so on, all in the same direction.

My current favorite implementation of a simple varidiac compose:
https://gist.github.com/dtipson/140a69d25b8c81fe7de8