
Am Mittwoch, den 09.05.2018, 13:49 +0200 schrieb Henning Thielemann:
On Wed, 9 May 2018, Wolfgang Jeltsch wrote:
Eric Mertens wrote:
In modern code it should be fairly rare to import Control.Arrow.
Edward Kmett wrote:
[…] in an attempt to help lead people away from Control.Arrow.
I’m irritated. Can someone explain what is wrong about Control.Arrow?
I think there is nothing wrong about Arrow, but people abused Arrow.first and Arrow.second for plain function arrow and now we have Bifunctor which is the more appropriate abstraction for most uses of 'first' and 'second'. (Though I guess that most uses need no abstraction at all.)
I think using Bifunctor.first and Bifunctor.second is as much an abuse as using Arrow.first and Arrow.second. When using Arrow you specialize the arrow type to (->), but when using Bifunctor you specialize the bifunctor type to (,). All the best, Wolfgang