Ну, одну вещь, которую вы можете сделать, это импортировать ее дважды:
import Data.Sequence ((|>), (<|), ViewR ((:>)))
import qualified Data.Sequence as Seq
Это импортирует только :>
, |>
и <|
без оговорок, оставляя все остальное квалифицированным.Обратите внимание, что поскольку :>
является конструктором данных, вам также необходимо импортировать его тип данных (ViewR
), но вы не должны импортировать остальные конструкторы ViewR
.
Кроме того, если вы беспокоитесь о конфликтах, вам следует просто скрыть соответствующий оператор:
import Prelude hiding ((.))
Если вы используете разумную библиотеку, конфликт с Prelude означает, что библиотечная функцияпредназначен для замены этой функции Prelude (например, Control.Category
), поэтому вы хотите, чтобы она заменяла значение по умолчанию.
Что касается передового опыта, я никогда не видел, чтобы кто-либо использовал квалифицированные операторыесли нет конфликта или они в GHCi.В целом, даже если учесть преимущество знания оператора, он делает код гораздо менее читабельным.