it includes the entire module.
thats because we can't include only the subtype.
but i agree that it can be anoying.
for example for msignal i need to do that because of order of include and addMetadata:
--macro keep('msignal.Signal.Signal0', null, false)
--macro keep('msignal.Signal.Signal1', null, false)
--macro keep('msignal.Signal.Signal2', null, false)
--macro keep('msignal.Signal')
so the default inclusion for subtype is useless.
thats why the prefered solution would be that addMetadata can add keep to all subtypes of a given module.