{-# LANGUAGE CPP, NoImplicitPrelude, UnicodeSyntax, TypeOperators #-} module Control.Arrow.Unicode ( (⋙) , (⋘) #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ > 608 , (⁂) #endif , (⧻) , (⫴) ) where ------------------------------------------------------------------------------- -- Imports ------------------------------------------------------------------------------- -- from base: import Control.Arrow ( Arrow, (***), ArrowChoice, (+++), (|||) ) import Data.Either ( Either ) #if (MIN_VERSION_base(3,0,3)) -- from base-unicode-symbols import Control.Category.Unicode ( (⋙), (⋘) ) #else import Control.Arrow ( (>>>), (<<<) ) #endif ------------------------------------------------------------------------------- -- Fixities ------------------------------------------------------------------------------- #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ > 608 infixr 3 ⁂ #endif infixr 2 ⧻ infixr 2 ⫴ #if ! (MIN_VERSION_base(3,0,3)) infixr 1 ⋙, ⋘ #endif ------------------------------------------------------------------------------- -- Symbols ------------------------------------------------------------------------------- #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ > 608 {-| (⁂) = ('***') U+2042, ASTERISM -} (⁂) ∷ Arrow a ⇒ a α β → a α' β' → a (α, α') (β, β') (⁂) = (***) {-# INLINE (⁂) #-} #endif {-| (⧻) = ('+++') U+29FB, TRIPLE PLUS -} (⧻) ∷ ArrowChoice a ⇒ a α β → a α' β' → a (Either α α') (Either β β') (⧻) = (+++) {-# INLINE (⧻) #-} {-| (⫴) = ('|||') U+2AF4, TRIPLE VERTICAL BAR BINARY RELATION -} (⫴) ∷ ArrowChoice a ⇒ a α δ → a β δ → a (Either α β) δ (⫴) = (|||) {-# INLINE (⫴) #-} #if ! (MIN_VERSION_base(3,0,3)) {-| (⋙) = ('>>>') U+22D9, VERY MUCH GREATER-THAN -} (⋙) ∷ Arrow a ⇒ a α β → a β γ → a α γ (⋙) = (>>>) {-# INLINE (⋙) #-} {-| (⋘) = ('<<<') U+22D8, VERY MUCH LESS-THAN -} (⋘) ∷ Arrow a ⇒ a β γ → a α β → a α γ (⋘) = (<<<) {-# INLINE (⋘) #-} #endif