cartesian-profunctors
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.Cartesian.FreeBicartesian

Documentation

newtype FreeBicartesian (p :: Type -> Type -> Type) a b Source #

Constructors

FreeBicartesian 

Fields

Instances

Instances details
ProfunctorMonad FreeBicartesian Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> FreeBicartesian p #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => FreeBicartesian (FreeBicartesian p) :-> FreeBicartesian p #

ProfunctorFunctor FreeBicartesian Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> FreeBicartesian p :-> FreeBicartesian q #

Cartesian (FreeBicartesian p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proUnit :: FreeBicartesian p a () Source #

proProduct :: (a -> (a1, a2)) -> ((b1, b2) -> b) -> FreeBicartesian p a1 b1 -> FreeBicartesian p a2 b2 -> FreeBicartesian p a b Source #

(***) :: FreeBicartesian p a b -> FreeBicartesian p a' b' -> FreeBicartesian p (a, a') (b, b') Source #

(&&&) :: FreeBicartesian p a b -> FreeBicartesian p a b' -> FreeBicartesian p a (b, b') Source #

proPower :: forall (n :: Nat) a b. KnownNat n => FreeBicartesian p a b -> FreeBicartesian p (Finite n -> a) (Finite n -> b) Source #

Cocartesian (FreeBicartesian p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proEmpty :: FreeBicartesian p Void b Source #

proSum :: (a -> Either a1 a2) -> (Either b1 b2 -> b) -> FreeBicartesian p a1 b1 -> FreeBicartesian p a2 b2 -> FreeBicartesian p a b Source #

(+++) :: FreeBicartesian p a b -> FreeBicartesian p a' b' -> FreeBicartesian p (Either a a') (Either b b') Source #

(|||) :: FreeBicartesian p a b -> FreeBicartesian p a' b -> FreeBicartesian p (Either a a') b Source #

proTimes :: forall (n :: Nat) a b. KnownNat n => FreeBicartesian p a b -> FreeBicartesian p (Finite n, a) (Finite n, b) Source #

Profunctor (FreeBicartesian p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

dimap :: (a -> b) -> (c -> d) -> FreeBicartesian p b c -> FreeBicartesian p a d #

lmap :: (a -> b) -> FreeBicartesian p b c -> FreeBicartesian p a c #

rmap :: (b -> c) -> FreeBicartesian p a b -> FreeBicartesian p a c #

(#.) :: forall a b c q. Coercible c b => q b c -> FreeBicartesian p a b -> FreeBicartesian p a c #

(.#) :: forall a b c q. Coercible b a => FreeBicartesian p b c -> q a b -> FreeBicartesian p a c #

Functor (FreeBicartesian p a) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

fmap :: (a0 -> b) -> FreeBicartesian p a a0 -> FreeBicartesian p a b #

(<$) :: a0 -> FreeBicartesian p a b -> FreeBicartesian p a a0 #

foldFreeBicartesian :: forall (q :: Type -> Type -> Type) (p :: Type -> Type -> Type). (Cartesian q, Cocartesian q) => (p :-> q) -> FreeBicartesian p :-> q Source #

newtype FreeBicartesianD (p :: Type -> Type -> Type) a b Source #

Instances

Instances details
ProfunctorMonad FreeBicartesianD Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> FreeBicartesianD p #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => FreeBicartesianD (FreeBicartesianD p) :-> FreeBicartesianD p #

ProfunctorFunctor FreeBicartesianD Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> FreeBicartesianD p :-> FreeBicartesianD q #

Profunctor p => Cartesian (FreeBicartesianD p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proUnit :: FreeBicartesianD p a () Source #

proProduct :: (a -> (a1, a2)) -> ((b1, b2) -> b) -> FreeBicartesianD p a1 b1 -> FreeBicartesianD p a2 b2 -> FreeBicartesianD p a b Source #

(***) :: FreeBicartesianD p a b -> FreeBicartesianD p a' b' -> FreeBicartesianD p (a, a') (b, b') Source #

(&&&) :: FreeBicartesianD p a b -> FreeBicartesianD p a b' -> FreeBicartesianD p a (b, b') Source #

proPower :: forall (n :: Nat) a b. KnownNat n => FreeBicartesianD p a b -> FreeBicartesianD p (Finite n -> a) (Finite n -> b) Source #

Profunctor p => Cocartesian (FreeBicartesianD p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

proEmpty :: FreeBicartesianD p Void b Source #

proSum :: (a -> Either a1 a2) -> (Either b1 b2 -> b) -> FreeBicartesianD p a1 b1 -> FreeBicartesianD p a2 b2 -> FreeBicartesianD p a b Source #

(+++) :: FreeBicartesianD p a b -> FreeBicartesianD p a' b' -> FreeBicartesianD p (Either a a') (Either b b') Source #

(|||) :: FreeBicartesianD p a b -> FreeBicartesianD p a' b -> FreeBicartesianD p (Either a a') b Source #

proTimes :: forall (n :: Nat) a b. KnownNat n => FreeBicartesianD p a b -> FreeBicartesianD p (Finite n, a) (Finite n, b) Source #

Profunctor p => Profunctor (FreeBicartesianD p) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

dimap :: (a -> b) -> (c -> d) -> FreeBicartesianD p b c -> FreeBicartesianD p a d #

lmap :: (a -> b) -> FreeBicartesianD p b c -> FreeBicartesianD p a c #

rmap :: (b -> c) -> FreeBicartesianD p a b -> FreeBicartesianD p a c #

(#.) :: forall a b c q. Coercible c b => q b c -> FreeBicartesianD p a b -> FreeBicartesianD p a c #

(.#) :: forall a b c q. Coercible b a => FreeBicartesianD p b c -> q a b -> FreeBicartesianD p a c #

Profunctor p => Functor (FreeBicartesianD p a) Source # 
Instance details

Defined in Data.Profunctor.Cartesian.FreeBicartesian

Methods

fmap :: (a0 -> b) -> FreeBicartesianD p a a0 -> FreeBicartesianD p a b #

(<$) :: a0 -> FreeBicartesianD p a b -> FreeBicartesianD p a a0 #

foldFreeBicartesianD :: forall (q :: Type -> Type -> Type) (p :: Type -> Type -> Type). (Cartesian q, Cocartesian q) => (p :-> q) -> FreeBicartesianD p :-> q Source #