You misunderstand (as most do): I never said function composition was a bad idea; I do it all the time.<p>My only claim is that you don&#x27;t need a Turing-complete language to compose functions.  As an thought-exercise, consider replacing all uses of first-class function compositions in any given OCaml program with top-level module compositions.  You lose nothing: no-one (who designs maintainable software) uses the full expressive power of a Turing-complete language to manipulate first-class functions.<p>(Of course there are more user-friendly ways to implement second-class functions, which make using them less a burden, but no extant language has such a system.)