In this video I compare the partial application feature of F# with DIVEX.
In F#, you need to fix all the dependencies of low-level functions before you pass them as arguments to high level functions (using partial application). When using DIVEX, you can inject low-level functions as arguments for high-level functions without fixing all the dependencies of low-level functions. This allows us to create potentially-pure functions and compose them without injecting impure functions. We can delay the injection of impure functions to the last possible moment.
The source code is here: https://github.com/ymassad/DivexExamples/tree/main/DivexVersusFSharpPartialApplication
This example cannot be tried in the browser. To try it, you need to download the DIVEX visual studio extension from http://divex.dev