Alias templates for function_traits::result_type and function_traits::argument_type.
Improved readability with auto return type and alias templates for functions traits. curried and compose return lambdas.