По аналогии к тому, как функторы разных сортов дают контроль над выходом.
Профункторы разных сортов могут дать контроль над входом и выходом.
Я и скинул абстракцию профунктора высшего рода, которая могла бы это сделать.
Она в принципе была бы полезна, т.к. рекурсивные "модули" встречаются часто.
Такие как Handle, Local, Bracket и т.п.
Над ними можно было бы восстановить контроль разделив контравариантные и ковариантные позиции параметра на два разных параметра
Но все это все еще будет сомнительньной полезности? Те необходим маппинг из G[_] в F[_] (как в вашем примере выше), в то время как большенстве полезных
трейтов, которые может понадобиться оборачивать, методы имеют вид маппинга из тупла в F[_], и этот тупл в G так просто не соберешь чтобы всю эту профунктор структуру использовать. Правильно ли я понял, что из этого происходит сомнительность их полезности или это из какого-то другого соображения?