So I had planned on using the Y combinator in my example, though my function required multiple input arguments and the Y combinator only supports functions with a single argument.
One option was to modify my function to be unary, which (after exploring options) I felt might be too confusing to users. This article was already at the upper end of complexity.
The other option was to modify the Y combinator to accept multiple arguments, which I felt took away from the beauty of the Y combinator itself and would somehow make it less combinatory.
I also didn’t want people to get distracted with the complexity of how the Y combinator looks.
Of course, that means I have to explain the new complexity of the U combinator.
In the end, I went with the U. If my function was purely unary, I would have coded it differently.