+ например если у меня есть синхронная функция, мне придётся оборачивать ее в асинхронный блок. Хоть я этого делать не должен (чтобы использовать ее с функциями высшего порядка в futures)
отдельный трейт просто для того, чтобы заставить компилятор вывести тип возвращаемого значения транзиции конечного автомата
к нам на вход приходит терм этого типа, а попросить сам тип нельзя, приходится для типа этого терма реализовывать трейт и сохранять в type Output его тип
отдельный трейт просто для того, чтобы заставить компилятор вывести тип возвращаемого значения транзиции конечного автомата
к нам на вход приходит терм этого типа, а попросить сам тип нельзя, приходится для типа этого терма реализовывать трейт и сохранять в type Output его тип
Как насчёт невозможности абстрагировать эффекты? У нас теперь есть 2 сорта функций, которые между собой крайне плохо взаимодействуют. Посмотри на FutureExt в futures, там некоторые функции тупо копии асинхронных и синхронных версий
у тебя нет эффектов в расте вообще, а то что это не работает на хаках которые придумали — не проблема раста