Returns a composed function that first applies the
function to its input, and then applies this function to the result.
If evaluation of either function throws an exception, it is relayed to
the caller of the composed function.
| the type of input to the |
|the function to apply before this function is applied|
function and then applies this function
|if before is null|