orangy
fun <T> create(factory: Factory<T>) : T = … class Person { companion object : Factory<Person> { … } } fun userCode() { create(Person) }