boost::hana::optionalin trying to define a class variadic template. If anyone wants to give a look, the question is here.
hana::optional? There are a few other unrelated compiler errors in your example.
hana::optionalis meant to carry its information at compile-time so it does not behave the way
std::optionaldoes which carries its information at run-time.
hana::nothingis an alias for
hana::optional<>which is a different type that any
hana::optional<T>. That's one of the reasons you would not be able to initialize with that pair because it is not even the same type as the base class.