A type-safe builder is a concept, rather than a language feature, so it is not strictly formalized.
A single builder function usually consists of 3 steps:
The concept of type-safe builders is widely used in some Kotlin libraries and frameworks, eg.: