More work for supporting new boost::variant interface