Get a list of unique HoloViews elements?

Is there a way to get something like:

import holoviews as hv
plot = hv.Curve([0, 1, 2]) * hv.Scatter([0, 1, 2])
plot.elements

expected output

[‘Overlay’, ‘Curve’, ‘Scatter’]

without having to parse the str(plot)

str(plot)
':Overlay\n   .Curve.I   :Curve   [x]   (y)\n   .Scatter.I :Scatter   [x]   (y)'

Or at least get the base element?

Nevermind, also figured out:
np.unique([p.group for p in plot.traverse()])