The function will return 8. This example demonstrates function composition, a technique closely related to currying. The `compose` function takes two functions and returns a new function that applies the first function to the result of applying the second function to its argument. Here's the evaluation step by step: `addOneThenDouble(3)` calls `double(addOne(3))`, which is `double(4)`, which equals `8`. Function composition is powerful for building complex transformations from simpler ones, and currying makes functions more composable by standardizing them to take one argument at a time. This is a foundational pattern in functional programming.