{-# LANGUAGE CPP, NoImplicitPrelude, UnicodeSyntax, TypeOperators #-} {-| Module : Control.Arrow.Unicode Copyright : (c) 2010 Roel van Dijk License : BSD3 (see the file LICENSE) Maintainer : Roel van Dijk -} 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 (⇝) ⇒ (α ⇝ β) → (α' ⇝ β') → (α, α') ⇝ (β, β') (⁂) = (***) #endif {-| (⧻) = ('+++') U+29FB, TRIPLE PLUS -} (⧻) ∷ ArrowChoice (⇝) ⇒ (α ⇝ β) → (α' ⇝ β') → (Either α α' ⇝ Either β β') (⧻) = (+++) {-| (⫴) = ('|||') U+2AF4, TRIPLE VERTICAL BAR BINARY RELATION -} (⫴) ∷ ArrowChoice (⇝) ⇒ (α ⇝ δ) → (β ⇝ δ) → (Either α β ⇝ δ) (⫴) = (|||) #if !MIN_VERSION_base(3,0,3) {-| (⋙) = ('>>>') U+22D9, VERY MUCH GREATER-THAN -} (⋙) ∷ Arrow (⇝) ⇒ (α ⇝ β) → (β ⇝ γ) → (α ⇝ γ) (⋙) = (>>>) {-| (⋘) = ('<<<') U+22D8, VERY MUCH LESS-THAN -} (⋘) ∷ Arrow (⇝) ⇒ (β ⇝ γ) → (α ⇝ β) → (α ⇝ γ) (⋘) = (<<<) #endif