Почему я не могу использовать @PublishedApi для typealias?

В моем текущем проекте у меня есть открытый интерфейс для разных запросов

interface Query<T> 

и внутреннюю реализацию для этого интерфейса. Поскольку у меня есть публичные встроенные функции для создания разных запросов, мне нужно использовать @PublishedApi в этом классе

 @PublishedApi internal class QueryImpl<T> : Query<T> 

Теперь для удобства я хочу определить некоторые типы-псевдонимы для разных типов запросов.

 typealias MatchQuery = Query<MatchQueryProperties> 

это очень хорошо работает для этого открытого интерфейса, но мне нужно создать один экземпляр этого в моей общедоступной встроенной функции

 inline fun match(init: MatchQuery.() -> Unit) { // It would look nicer if I could use MatchQueryImpl().init() QueryImpl<MatchQueryProperties>().init() } 

Но вместо того, чтобы писать QueryImpl<PropertiesType> для каждого типа запросов, я хочу использовать внутренние типы тоже для реализации.

 // fails because it needs to be internal typealias MatchQueryImpl = QueryImpl<MatchQueryProperties> // can't be used in public inline functions internal typealias MatchQueryImpl = QueryImpl<MatchQueryProperties> // annotation can't be used on typealias @PublishedApi internal typealias MatchQueryImpl = QueryImpl<MatchQueryProperties> 

Поэтому мои вопросы:
Могу ли я каким-то образом использовать @PublishedApi internal typealias ?
Если нет, почему я не могу использовать его?
Есть ли другой способ архивирования, что я хочу?

В настоящее время вы не можете использовать непубличные типы сообщений в общедоступной встроенной функции. Это текущий недостаток того, как встроенная функция проверяет, нормально ли использовать непубличный API внутри своего тела.

Я открыл проблему KT-19407 для отслеживания и обсуждения этой проблемы.