Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Object.Exponential
Documentation
class Monoidal k => Closed k where Source Comments #
Methods
withObExp :: forall (a :: k) (b :: k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments #
curry :: forall (a :: k) (b :: k) (c :: k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #
uncurry :: forall (b :: k) (c :: k) (a :: k). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #
(^^^) :: forall (a :: k) (b :: k) (x :: k) (y :: k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments #
Instances
Closed BOOL Source Comments # | |||||
Defined in Proarrow.Category.Instance.Bool Associated Types
Methods withObExp :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed KIND Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Methods withObExp :: forall (a :: KIND) (b :: KIND) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: KIND) (c :: KIND) (a :: KIND). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed CONSTRAINT Source Comments # | |||||
Defined in Proarrow.Category.Instance.Constraint Associated Types
Methods withObExp :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (c :: CONSTRAINT). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: CONSTRAINT) (c :: CONSTRAINT) (a :: CONSTRAINT). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (x :: CONSTRAINT) (y :: CONSTRAINT). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed LINEAR Source Comments # | |||||
Defined in Proarrow.Category.Instance.Linear Methods withObExp :: forall (a :: LINEAR) (b :: LINEAR) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: LINEAR) (c :: LINEAR) (a :: LINEAR). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: LINEAR) (b :: LINEAR) (x :: LINEAR) (y :: LINEAR). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed () Source Comments # | |||||
Defined in Proarrow.Object.Exponential Associated Types
Methods withObExp :: forall (a :: ()) (b :: ()) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: ()) (b :: ()) (c :: ()). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: ()) (c :: ()) (a :: ()). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: ()) (b :: ()) (x :: ()) (y :: ()). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed Type Source Comments # | |||||
Defined in Proarrow.Object.Exponential Associated Types
Methods withObExp :: (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall a b x y. (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
(TracedMonoidal k, Ob (Unit :: k)) => Closed (INT k) Source Comments # | |||||
Defined in Proarrow.Category.Instance.IntConstruction Methods withObExp :: forall (a :: INT k) (b :: INT k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: INT k) (c :: INT k) (a :: INT k). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: INT k) (b :: INT k) (x :: INT k) (y :: INT k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Num a => Closed (MatK a) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Mat Methods withObExp :: forall (a0 :: MatK a) (b :: MatK a) r. (Ob a0, Ob b) => (Ob (a0 ~~> b) => r) -> r Source Comments # curry :: forall (a0 :: MatK a) (b :: MatK a) (c :: MatK a). (Ob a0, Ob b) => ((a0 ** b) ~> c) -> a0 ~> (b ~~> c) Source Comments # uncurry :: forall (b :: MatK a) (c :: MatK a) (a0 :: MatK a). (Ob b, Ob c) => (a0 ~> (b ~~> c)) -> (a0 ** b) ~> c Source Comments # (^^^) :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a) (y :: MatK a). (b ~> y) -> (x ~> a0) -> (a0 ~~> b) ~> (x ~~> y) Source Comments # | |||||
BiCCC k => Closed (FK k) Source Comments # | |||||
Defined in Proarrow.Helper.CCC Methods withObExp :: forall (a :: FK k) (b :: FK k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: FK k) (b :: FK k) (c :: FK k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: FK k) (c :: FK k) (a :: FK k). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: FK k) (b :: FK k) (x :: FK k) (y :: FK k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
(CategoryOf j, CategoryOf k) => Closed (PROD (PRO j k)) Source Comments # | |||||
Defined in Proarrow.Object.Exponential Methods withObExp :: forall (a :: PROD (PRO j k)) (b :: PROD (PRO j k)) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: PROD (PRO j k)) (b :: PROD (PRO j k)) (c :: PROD (PRO j k)). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: PROD (PRO j k)) (c :: PROD (PRO j k)) (a :: PROD (PRO j k)). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: PROD (PRO j k)) (b :: PROD (PRO j k)) (x :: PROD (PRO j k)) (y :: PROD (PRO j k)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
CategoryOf k1 => Closed (PROD (k1 -> Type)) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Nat Methods withObExp :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)) (c :: PROD (k1 -> Type)). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: PROD (k1 -> Type)) (c :: PROD (k1 -> Type)) (a :: PROD (k1 -> Type)). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)) (x :: PROD (k1 -> Type)) (y :: PROD (k1 -> Type)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed (KLEISLI (Cont r)) Source Comments # | |||||
Defined in Proarrow.Promonad.Cont Methods withObExp :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) r0. (Ob a, Ob b) => (Ob (a ~~> b) => r0) -> r0 Source Comments # curry :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)) (a :: KLEISLI (Cont r)). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (x :: KLEISLI (Cont r)) (y :: KLEISLI (Cont r)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
(Monoidal j, Monoidal k) => Closed (PRO j k) Source Comments # | |||||
Defined in Proarrow.Profunctor.Day Methods withObExp :: forall (a :: PRO j k) (b :: PRO j k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: PRO j k) (c :: PRO j k) (a :: PRO j k). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: PRO j k) (b :: PRO j k) (x :: PRO j k) (y :: PRO j k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
(Closed j, Closed k) => Closed (j, k) Source Comments # | |||||
Defined in Proarrow.Object.Exponential Methods withObExp :: forall (a :: (j, k)) (b :: (j, k)) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: (j, k)) (c :: (j, k)) (a :: (j, k)). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: (j, k)) (b :: (j, k)) (x :: (j, k)) (y :: (j, k)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Closed (Type -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Nat Methods withObExp :: forall (a :: Type -> Type) (b :: Type -> Type) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: Type -> Type) (c :: Type -> Type) (a :: Type -> Type). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: Type -> Type) (b :: Type -> Type) (x :: Type -> Type) (y :: Type -> Type). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
(Bicategory kk, Ob0 kk k, Ob (I :: kk k k), forall (f :: kk k k) (g :: kk k k). (Ob f, Ob g) => RightKanExtension f g) => Closed (ENDO kk k) Source Comments # | |||||
Defined in Proarrow.Category.Monoidal.Endo Methods withObExp :: forall (a :: ENDO kk k) (b :: ENDO kk k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Comments # curry :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry :: forall (b :: ENDO kk k) (c :: ENDO kk k) (a :: ENDO kk k). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (a :: ENDO kk k) (b :: ENDO kk k) (x :: ENDO kk k) (y :: ENDO kk k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # |
curry' :: forall {k} (a :: k) (b :: k) (c :: k). Closed k => Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #
uncurry' :: forall {k} (b :: k) (c :: k) (a :: k). Closed k => Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #
comp :: forall {k} (a :: k) (b :: k) (c :: k). (Closed k, Ob a, Ob b, Ob c) => ((b ~~> c) ** (a ~~> b)) ~> (a ~~> c) Source Comments #
mkExponential :: forall {k} (a :: k) (b :: k). Closed k => (a ~> b) -> (Unit :: k) ~> (a ~~> b) Source Comments #
lower :: forall {k} (a :: k) (b :: k). (Closed k, Ob a, Ob b) => ((Unit :: k) ~> (a ~~> b)) -> a ~> b Source Comments #
eval :: forall {k} (a :: k) (b :: k). (Closed k, Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Comments #
data ExponentialFunctor (a :: k) (b :: (OPPOSITE k, k)) where Source Comments #
Constructors
ExponentialFunctor :: forall {k} (c :: k) (d :: k) (a :: k). (Ob c, Ob d) => (a ~> (c ~~> d)) -> ExponentialFunctor a '('OP c, d) |
Instances
Closed k => Profunctor (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # | |
Defined in Proarrow.Object.Exponential | |
Closed k => Representable (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # | |
Defined in Proarrow.Object.Exponential Methods index :: forall (a :: k) (b :: (OPPOSITE k, k)). ExponentialFunctor a b -> a ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b) Source Comments # tabulate :: forall (b :: (OPPOSITE k, k)) (a :: k). Ob b => (a ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b)) -> ExponentialFunctor a b Source Comments # repMap :: forall (a :: (OPPOSITE k, k)) (b :: (OPPOSITE k, k)). (a ~> b) -> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % a) ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b) Source Comments # | |
type (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % ('('OP a, b) :: (OPPOSITE k, k)) Source Comments # | |
Defined in Proarrow.Object.Exponential |
class (CCC k, HasCoproducts k) => BiCCC k Source Comments #
Instances
(CCC k, HasCoproducts k) => BiCCC k Source Comments # | |
Defined in Proarrow.Object.Exponential |