basic variant ctor, dtor, assign, visit