1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
{-# LANGUAGE CPP, NoImplicitPrelude, UnicodeSyntax, TypeOperators #-}
{-|
Module : Control.Arrow.Unicode
Copyright : 2010—2011 Roel van Dijk
License : BSD3 (see the file LICENSE)
Maintainer : Roel van Dijk <vandijk.roel@gmail.com>
-}
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
|