Name collisions are always an issue, and I think you raise a valid point. However, in this case, does Haskell not already offer a solution? Qualified imports do add some overhead, but doing

```

import qualified Control.Arrow  as A

import qualified Data.Bifunctor as B


foo :: Foo

foo = f . A.first . g


baz :: Baz

baz = h . B.first . i

```

does not seem too difficult.


On 08-05-2018 15:35, 박신환 wrote:

I had to import both Control.Arrow and Data.Bifunctor, and the name collision is annoying.

 

`first` and `second` from Data.Bifunctor should be given other names. I suggest (<$<) and (>$>), respectively. 



_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries