The output is 10. The `multiply` function is a curried function that takes two arguments one at a time. First, we call `multiply(2)` which returns a new function that multiplies its argument by 2. We assign this function to the variable `double`. When we call `double(5)`, we're actually calling the inner function with `b = 5`, and since `a = 2` was captured in the closure, the result is 2 * 5 = 10. This example demonstrates how currying enables creating specialized functions (like double) from more general ones.