pandora-0.4.0: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Paradigm.Primary.Transformer.Kan

Documentation

data family Kan (v :: * -> k) (t :: * -> *) (u :: * -> *) b a Source #

Instances

Instances details
Contravariant (Kan ('Left :: Type -> Wye Type) t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

Methods

(>$<) :: (a -> b0) -> Kan 'Left t u b b0 -> Kan 'Left t u b a Source #

contramap :: (a -> b0) -> Kan 'Left t u b b0 -> Kan 'Left t u b a Source #

(>$) :: b0 -> Kan 'Left t u b b0 -> Kan 'Left t u b a Source #

($<) :: Kan 'Left t u b b0 -> b0 -> Kan 'Left t u b a Source #

full :: Kan 'Left t u b () -> Kan 'Left t u b a Source #

(>&<) :: Kan 'Left t u b b0 -> (a -> b0) -> Kan 'Left t u b a Source #

(>$$<) :: Contravariant u0 => (a -> b0) -> ((Kan 'Left t u b :. u0) := a) -> (Kan 'Left t u b :. u0) := b0 Source #

(>$$$<) :: (Contravariant u0, Contravariant v) => (a -> b0) -> ((Kan 'Left t u b :. (u0 :. v)) := b0) -> (Kan 'Left t u b :. (u0 :. v)) := a Source #

(>$$$$<) :: (Contravariant u0, Contravariant v, Contravariant w) => (a -> b0) -> ((Kan 'Left t u b :. (u0 :. (v :. w))) := a) -> (Kan 'Left t u b :. (u0 :. (v :. w))) := b0 Source #

(>&&<) :: Contravariant u0 => ((Kan 'Left t u b :. u0) := a) -> (a -> b0) -> (Kan 'Left t u b :. u0) := b0 Source #

(>&&&<) :: (Contravariant u0, Contravariant v) => ((Kan 'Left t u b :. (u0 :. v)) := b0) -> (a -> b0) -> (Kan 'Left t u b :. (u0 :. v)) := a Source #

(>&&&&<) :: (Contravariant u0, Contravariant v, Contravariant w) => ((Kan 'Left t u b :. (u0 :. (v :. w))) := a) -> (a -> b0) -> (Kan 'Left t u b :. (u0 :. (v :. w))) := b0 Source #

Covariant (Kan ('Right :: Type -> Wye Type) t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

Methods

(<$>) :: (a -> b0) -> Kan 'Right t u b a -> Kan 'Right t u b b0 Source #

comap :: (a -> b0) -> Kan 'Right t u b a -> Kan 'Right t u b b0 Source #

(<$) :: a -> Kan 'Right t u b b0 -> Kan 'Right t u b a Source #

($>) :: Kan 'Right t u b a -> b0 -> Kan 'Right t u b b0 Source #

void :: Kan 'Right t u b a -> Kan 'Right t u b () Source #

loeb :: Kan 'Right t u b (a <:= Kan 'Right t u b) -> Kan 'Right t u b a Source #

(<&>) :: Kan 'Right t u b a -> (a -> b0) -> Kan 'Right t u b b0 Source #

(<$$>) :: Covariant u0 => (a -> b0) -> ((Kan 'Right t u b :. u0) := a) -> (Kan 'Right t u b :. u0) := b0 Source #

(<$$$>) :: (Covariant u0, Covariant v) => (a -> b0) -> ((Kan 'Right t u b :. (u0 :. v)) := a) -> (Kan 'Right t u b :. (u0 :. v)) := b0 Source #

(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b0) -> ((Kan 'Right t u b :. (u0 :. (v :. w))) := a) -> (Kan 'Right t u b :. (u0 :. (v :. w))) := b0 Source #

(<&&>) :: Covariant u0 => ((Kan 'Right t u b :. u0) := a) -> (a -> b0) -> (Kan 'Right t u b :. u0) := b0 Source #

(<&&&>) :: (Covariant u0, Covariant v) => ((Kan 'Right t u b :. (u0 :. v)) := a) -> (a -> b0) -> (Kan 'Right t u b :. (u0 :. v)) := b0 Source #

(<&&&&>) :: (Covariant u0, Covariant v, Covariant w) => ((Kan 'Right t u b :. (u0 :. (v :. w))) := a) -> (a -> b0) -> (Kan 'Right t u b :. (u0 :. (v :. w))) := b0 Source #

Interpreted (Kan ('Left :: Type -> Wye Type) t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

Associated Types

type Primary (Kan 'Left t u b) a Source #

Methods

run :: Kan 'Left t u b a -> Primary (Kan 'Left t u b) a Source #

unite :: Primary (Kan 'Left t u b) a -> Kan 'Left t u b a Source #

(||=) :: Interpreted u0 => (Primary (Kan 'Left t u b) a -> Primary u0 b0) -> Kan 'Left t u b a -> u0 b0 Source #

(=||) :: Interpreted u0 => (Kan 'Left t u b a -> u0 b0) -> Primary (Kan 'Left t u b) a -> Primary u0 b0 Source #

Interpreted (Kan ('Right :: Type -> Wye Type) t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

Associated Types

type Primary (Kan 'Right t u b) a Source #

Methods

run :: Kan 'Right t u b a -> Primary (Kan 'Right t u b) a Source #

unite :: Primary (Kan 'Right t u b) a -> Kan 'Right t u b a Source #

(||=) :: Interpreted u0 => (Primary (Kan 'Right t u b) a -> Primary u0 b0) -> Kan 'Right t u b a -> u0 b0 Source #

(=||) :: Interpreted u0 => (Kan 'Right t u b a -> u0 b0) -> Primary (Kan 'Right t u b) a -> Primary u0 b0 Source #

data Kan ('Left :: Type -> Wye Type) t u b a Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

data Kan ('Left :: Type -> Wye Type) t u b a = Lan ((t b -> a) -> u b)
data Kan ('Right :: Type -> Wye Type) t u b a Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

data Kan ('Right :: Type -> Wye Type) t u b a = Ran ((a -> t b) -> u b)
type Primary (Kan ('Left :: Type -> Wye Type) t u b) a Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

type Primary (Kan ('Left :: Type -> Wye Type) t u b) a = (t b -> a) -> u b
type Primary (Kan ('Right :: Type -> Wye Type) t u b) a Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Kan

type Primary (Kan ('Right :: Type -> Wye Type) t u b) a = (a -> t b) -> u b