rs are specified in a manner identical
                    to Boost.Asio. They are function objects which can be copied
                    or moved but most importantly they are not type erased. The compiler
                    can see through the type directly to the implementation, permitting
                    optimization. Furthermore, Beast follows the Asio rules for treatment
                    of handlers. It respects any allocation, continuation, or invocation
                    customizations a