You can still create a value of that type with new
. I.e.
Bar(1): Foo
new Bar(1): Bar
It’s true that this could open up again the problem of unwanted types in lubs. So Allow traits to be transparently or "invisibly" mixed in could also be relevant in that context.