Introduction
Sometimes you add new functions to existing classes without changing them. Kotlin lets you do this with extensions. But if a class already has a function with the same name, Kotlin uses the class's own function first.
You want to add a new function to a class you don't own or can't change.
You want to keep your code organized by adding helpers outside the class.
You want to avoid accidentally overriding existing class functions.
You want to understand why your extension function is not called when a member function exists.