module Pandora.Paradigm.Primary.Auxiliary where import Pandora.Pattern.Category ((<--)) import Pandora.Pattern.Functor.Covariant (Covariant ((<-|-))) import Pandora.Paradigm.Algebraic.Exponential () data Vertical a = Up a | Down a instance Covariant (->) (->) Vertical where a -> b f <-|- :: (a -> b) -> Vertical a -> Vertical b <-|- Up a x = b -> Vertical b forall a. a -> Vertical a Up (b -> Vertical b) -> b -> Vertical b forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b) <-- a -> b f a x a -> b f <-|- Down a x = b -> Vertical b forall a. a -> Vertical a Down (b -> Vertical b) -> b -> Vertical b forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b) <-- a -> b f a x data Horizontal a = Left a | Right a instance Covariant (->) (->) Horizontal where a -> b f <-|- :: (a -> b) -> Horizontal a -> Horizontal b <-|- Left a x = b -> Horizontal b forall a. a -> Horizontal a Left (b -> Horizontal b) -> b -> Horizontal b forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b) <-- a -> b f a x a -> b f <-|- Right a x = b -> Horizontal b forall a. a -> Horizontal a Right (b -> Horizontal b) -> b -> Horizontal b forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b) <-- a -> b f a x