Hello, Is there a way to make multi-visitation with apply() & multiple variant types ? e.g. ``` eggs::variant<int, float> v1; eggs::variant<foo, bar> v2; struct vis { void operator()(int, foo); void operator()(int, bar); void operator()(float, foo); void operator()(float, bar); }; eggs::variants::apply(vis{}, v1, v2); ``` thanks !