I find that feature hugely useful. I have wondered also about the usefulness of a `companion val,`which would allow the companion to be an instance of a final type. I've tried to do this before and was disappointed that the companion must be its own class