Great writing, Vincent.
I have 0 knowledge in Kotlin, as I speak in Java, Python and a little Javascript, but I like to extend my view, so I deciced to learn a little bit about Kotlin and read your article. 😊
I have one question too. I have seen many singletons during my life, but I have never seen one which has a constructor, except when using dependency injection.
I see one problem with it. If you really call the instance method from multiple places and pass different parameters (name), then I would expect to get a singleton with the name I specified, but in reality I will get a singleton with a name which was specified in the first call of the instance method.
Am I missing something? Is this common in Kotlin to give parameters to singletons?