public static Response Cast(this Response response)
        {
            var builder = new ResponseBuilder();
            var visitor = new ResponseToBuilderVisitor(builder);

            response.Accept(visitor);

            return(builder.Type(null).Query(false).Build());
        }
        public static QueryResponse <T> CastQuery <T>(this Response response)
        {
            var builder = new ResponseBuilder();
            var visitor = new ResponseToBuilderVisitor(builder);

            response.Accept(visitor);

            return(builder.Type(typeof(T)).Query(true).BuildQuery <T>());
        }