DelayedInit and StringContext

I’m not entirely sure what do you mean by “more regular”. To me, the more special objects a language has the less regular it is, because those special objects seem weaker than keywords, and are more subjected to changes in the future. They are not seen as strict – regular – rules.

I’m honestly not sure what is the problem with DelayedInit, as it wasn’t explicitly explained (as I’ve discussed here). What I was able to interpret from the previous discussions is that they are “surprising”, and that this may partly stem from them being a special trait instead of a more regular / established mechanism.

The same goes for StringContext, which I found to be quite odd when I first used it (to implement custom JSON parsing just like in the documentation example). It seemed to me as quite the irregular feature, that was not very intuitive to learn. I think the case of implicit conversations has a much grater potential for confusion than string interpolations, so I’d prefer them to not be encoded via special objects.