I have never written anything in F# and I have no familiarity with the language, so I'm speaking more from my (IMO quite basic) familiarity with Haskell and Clojure, and most especially the former. In Haskell composition is just such a natural part of the design of programmes, and yes, functions often have many arguments. One just designed with composition in mind so this "piping" works really easily.