#haskell
Вопрос:
Data.Bifunctor
имеет first
и second
для сопоставления аргументов первого и второго типов.
Почему нет Data.Bitraversable
аналогичного traverseFirst
и traverseSecond
?
Комментарии:
1. Тебе придется спросить Эда Кметта. Но вы можете просто написать
traverseSecond = bitraverse pure
иtraverseFirst = flip bitraverse pure
.2. Существует ли полезное разложение
bitraverse
наtraverseFirst
иtraverseSecond
аналогичноbimap f g = first f . second g
?3. @chepner, хорошая мысль! Я не думаю, что это так, если, конечно, вы не выкинете несколько трюков с незаконным
Applicative
экземпляром.