Returns a composed function that first applies this function to
its input, and then applies the
after 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 output of the |
|the function to apply after this function is applied|
|if after is null|