const S = f => g => x => f(x)(g(x));
I'm more likely to write
const geed = g(x);
const effed = f(x);
const S = effed(geed);
I have no idea when I would actually write a structure like this though. Can someone please fill those names in with something like `buildComparator` or `Math.max.apply` or something, anything, that remotely makes sense?