Parameterized companion extensions

I was wondering why

fun <T> T.Companion.foo() {}

Does not work. Thanks!

Because not every type has a companion object, and out of those that do, not all are named Companion.