Returns a composed function that first applies the before
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.
Parameters:
before - the function to apply before this function is applied
Returns:
a composed function that first applies the before
function and then applies this function
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.
Parameters:
after - the function to apply after this function is applied
Returns:
a composed function that first applies this function and then
applies the after function