{-# LANGUAGE NoImplicitPrelude, UnicodeSyntax #-}

module Control.Category.Unicode ( (∘), (⋙), (⋘) ) where

-------------------------------------------------------------------------------
-- Imports
-------------------------------------------------------------------------------

-- from base:
import Control.Category ( Category, (.), (>>>), (<<<) )


-------------------------------------------------------------------------------
-- Fixities
-------------------------------------------------------------------------------

infixr 9 
infixr 1 , 


-------------------------------------------------------------------------------
-- Symbols
-------------------------------------------------------------------------------

{-|
(&#x2218;) = ('.')

U+2218, RING OPERATOR
-}
(∘)  Category c  c β γ  c α β  c α γ
∘ :: forall (c :: * -> * -> *) β γ α.
Category c =>
c β γ -> c α β -> c α γ
(∘) = c β γ -> c α β -> c α γ
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
(.)
{-# INLINE () #-}

{-|
(&#x22D9;) = ('>>>')

U+22D9, VERY MUCH GREATER-THAN
-}
(⋙)  Category c  c α β  c β γ  c α γ
⋙ :: forall (c :: * -> * -> *) α β γ.
Category c =>
c α β -> c β γ -> c α γ
(⋙) = c α β -> c β γ -> c α γ
forall {k} (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
(>>>)
{-# INLINE () #-}

{-|
(&#x22D8;) = ('<<<')

U+22D8, VERY MUCH LESS-THAN
-}
(⋘)  Category c  c β γ  c α β  c α γ
⋘ :: forall (c :: * -> * -> *) β γ α.
Category c =>
c β γ -> c α β -> c α γ
(⋘) = c β γ -> c α β -> c α γ
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
(<<<)
{-# INLINE () #-}