module Pandora.Pattern.Category (Category (..)) where
import Pandora.Pattern.Semigroupoid (Semigroupoid ((.)))
infixl 1 <--------
infixl 2 <-------
infixl 3 <------
infixl 4 <-----
infixl 5 <----
infixl 6 <---
infixl 7 <--
infixr 1 -------->
infixr 2 ------->
infixr 3 ------>
infixr 4 ----->
infixr 5 ---->
infixr 6 --->
infixr 7 -->
class Semigroupoid m => Category m where
identity :: m a a
(<--------), (<-------), (<------), (<-----), (<----), (<---), (<--) :: m (m a b) (m a b)
(<--------) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<-------) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<------) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<-----) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<----) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<---) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(<--) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(-------->), (------->), (------>), (----->), (---->), (--->), (-->) :: m (m a b) (m a b)
(-------->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(------->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(------>) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(----->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(---->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(--->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity
(-->) = m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity m (m a b) (m a b) -> m (m a b) (m a b) -> m (m a b) (m a b)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. m (m a b) (m a b)
forall (m :: * -> * -> *) a. Category m => m a a
identity