Kotlin: ¿cómo se puede acceder externamente a las funciones de extensión dentro de un tipo?

A menudo me encuentro con el escenario en el que tengo funciones abstractas de extensión dentro de un tipo.

interface PetScript { fun Pet.feed() fun Pet.call() } 

Tener las funciones de funciones de extensión permite implementaciones muy minimalists porque da automáticamente this context.

Desafortunadamente, la única forma que conozco de utilizar estas funciones es escribir funciones estándar repetitivas que pasan a las extensiones.

 interface PetScript { fun Pet.feed() fun Pet.call() fun feed_(pet: Pet) = pet.feed() fun call_(pet: Pet) = pet.call() } 

De esta manera puedo usar las funciones de esta manera:

 val pet = ... val script = ... script.feed_(pet) script.call_(pet) 

¿Hay una forma mejor y más idiomática de usar las funciones de extensión fuera del tipo?

    Existe un ticket antiguo para múltiples receptores en funciones de extensión , pero la solución simple es anidar su scope:

     val pet = ... val script = ... script.run { pet.feed() pet.call() }