namespace detail {
template <class> class Core;
-template <class...> struct VariadicContext;
+template <class...> struct CollectAllVariadicContext;
+template <class...> struct CollectVariadicContext;
template <class> struct CollectContext;
template<typename F, typename... Args>