Resolve name collsion of `first` and `second` by Control.Arrow and Data.Bifunctor