Header file algorithms/wrap.hpp

namespace brigand
{
    namespace lazy
    {
        template <template <class> class A, class ... T, template <class> class B>
        struct wrap<A<T...>, B>
        {
            using type = B<T...>;
        };
    }
    
    template <class A, template <class> class B>
    using wrap = typename lazy::wrap<A, B>::type;
}