private function assertMethodCallable($class_name, $method, $callable)
    {
        if (
            class_exists($class_name)
            && ! (method_exists($class_name, $method) || is_callable([$class_name, $method]))
        ) {
            throw Exception\InvalidCallable::forCallable($callable);
        }
    }