| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Nat
Contents
Documentation
data Nat (f :: j -> k) (g :: j -> k) where Source Github #
Constructors
| Nat | |
Instances
| Promonad (Nat :: (j -> Type) -> (j -> Type) -> Type) Source Github # | |
| Promonad (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Github # | |
| Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Github # | |
| MonoidalProfunctor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Source Github # | |
| Profunctor (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods dimap :: forall (c :: k1 -> k2 -> k3 -> k4 -> Type) (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) (d :: k1 -> k2 -> k3 -> k4 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Github # (\\) :: forall (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Github # | |
| Profunctor (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods dimap :: forall (c :: k1 -> k2 -> k3 -> Type) (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) (d :: k1 -> k2 -> k3 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Github # (\\) :: forall (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Github # | |
| Profunctor (Nat :: (k1 -> Type) -> (k1 -> Type) -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat | |
(!) :: forall {j} {k} (f :: j -> k) (g :: j -> k) (a :: j) (b :: j). Nat f g -> (a ~> b) -> f a ~> g b Source Github #
data ((f :: k -> Type) :~>: (g :: k -> Type)) (a :: k) where Source Github #
data Lan (j1 :: j -> k) (f :: j -> Type) (a :: k) where Source Github #
data CatAsComonoid k a where Source Github #
Constructors
| CatAsComonoid :: forall {k} (c :: k) a. Ob c => (forall (c' :: k). (c ~> c') -> a) -> CatAsComonoid k a |
Instances
| Functor (CatAsComonoid k :: Type -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods map :: (a ~> b) -> CatAsComonoid k a ~> CatAsComonoid k b Source Github # | |
| CategoryOf k => Comonoid (CatAsComonoid k :: Type -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods counit :: CatAsComonoid k ~> (Unit :: Type -> Type) Source Github # comult :: CatAsComonoid k ~> (CatAsComonoid k ** CatAsComonoid k) Source Github # | |
data ComonoidAsCat (w :: Type -> Type) a b where Source Github #
Constructors
| ComonoidAsCat :: forall (w :: Type -> Type) a b. (w a -> b) -> ComonoidAsCat w a b |
Instances
| Functor w => Profunctor (ComonoidAsCat w :: Type -> Type -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods dimap :: (c ~> a) -> (b ~> d) -> ComonoidAsCat w a b -> ComonoidAsCat w c d Source Github # (\\) :: ((Ob a, Ob b) => r) -> ComonoidAsCat w a b -> r Source Github # | |
| Comonoid w => Promonad (ComonoidAsCat w :: Type -> Type -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods id :: Ob a => ComonoidAsCat w a a Source Github # (.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Github # | |
newtype j .-> k Source Github #
Constructors
| NT (j -> k) |
Instances
| (Functor f, Discrete j, Thin k) => ThinProfunctor (Costar f :: k -> j -> Type) Source Github # | |
| (Cartesian j, Cartesian k, Functor f) => MonoidalProfunctor (Costar f :: j -> k -> Type) Source Github # | Every functor between cartesian categories is a colax monoidal functor. |
| Functor f => Profunctor (Costar f :: k -> j -> Type) Source Github # | |
| Functor f => Corepresentable (Costar f :: k -> j -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Costar | |
| Representable (Costar ((,) a) :: Type -> Type -> Type) Source Github # | The right adjoint of |
| Functor f => Proadjunction (Star f :: k -> j -> Type) (Costar f :: j -> k -> Type) Source Github # | |
| (Functor t, Traversable (Star t)) => Cotraversable (Costar t :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Costar Methods cotraverse :: forall (p :: k +-> k). (DistributiveProfunctor p, Strong k p, SelfAction k) => (p :.: Costar t) :~> (Costar t :.: p) Source Github # | |
| Monad m => Procomonad (Costar (Prelude m) :: Type -> Type -> Type) Source Github # | |
| Functor (Costar' :: OPPOSITE (j .-> k) -> j -> k -> Type) Source Github # | |
| CategoryOf (j .-> k) Source Github # | The category of functors and natural transformations. |
Defined in Proarrow.Category.Instance.Nat | |
| Promonad (Nat' :: (j .-> k) -> (j .-> k) -> Type) Source Github # | |
| Profunctor (Nat' :: (j .-> k) -> (j .-> k) -> Type) Source Github # | |
| (CategoryOf j, CategoryOf k) => Functor (Star' :: (j .-> k) -> k -> j -> Type) Source Github # | |
| Promonad (Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Coyoneda Methods id :: forall (a :: j +-> k). Ob a => Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| Profunctor p => Promonad (Costar ((:*:) p) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
| Promonad (Costar (Yoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Yoneda Methods id :: forall (a :: j +-> k). Ob a => Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| type (Costar f :: k -> j -> Type) %% (a :: k) Source Github # | |
Defined in Proarrow.Profunctor.Costar | |
| type (Costar ((,) a) :: Type -> Type -> Type) % (b :: Type) Source Github # | |
| type HasArrow (Costar f :: k -> j -> Type) (a :: k) (b :: j) Source Github # | |
Defined in Proarrow.Profunctor.Costar | |
| type (~>) Source Github # | |
| type Ob (f :: j .-> k) Source Github # | |
| type UN ('NT :: (j -> k) -> j .-> k) ('NT f :: j .-> k) Source Github # | |
data Nat' (f :: k .-> k1) (g :: k .-> k1) where Source Github #
Constructors
| Nat' | |
first :: forall i j k (f :: i -> j -> k) (c :: j) (a :: i) (b :: i). (Functor f, ((~>) :: CAT (j -> k)) ~ (Nat :: (j -> k) -> (j -> k) -> Type), Ob c) => (a ~> b) -> f a c ~> f b c Source Github #
bimap :: forall i j k (f :: i -> j -> k) (a :: i) (c :: i) (b :: j) (d :: j). (Functor f, ((~>) :: CAT (j -> k)) ~ (Nat :: (j -> k) -> (j -> k) -> Type), Functor (f a)) => (a ~> c) -> (b ~> d) -> f a b ~> f c d Source Github #
Orphan instances
| (ob Identity, forall (a :: Type -> Type) (b :: Type -> Type). (ob a, ob b) => ob (Compose a b)) => Strong (SUBCAT ob) (->) Source Github # | |||||||||
| Strong (Type -> Type) (->) Source Github # | |||||||||
| (Functor f, Functor g) => Functor (Product f g :: k1 -> Type) Source Github # | |||||||||
| (Functor f, Functor g) => Functor (Sum f g :: k1 -> Type) Source Github # | |||||||||
| Copowered Type (k -> Type) Source Github # | |||||||||
Methods withObCopower :: forall (a :: k -> Type) n r. (Ob a, Ob n) => (Ob (n *. a) => r) -> r Source Github # copower :: forall (a :: k -> Type) (b :: k -> Type) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> (n *. a) ~> b Source Github # uncopower :: forall (a :: k -> Type) n (b :: k -> Type). (Ob a, Ob n) => ((n *. a) ~> b) -> n ~> HomObj Type a b Source Github # | |||||||||
| Powered Type (k -> Type) Source Github # | |||||||||
Methods withObPower :: forall (a :: k -> Type) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Github # power :: forall (a :: k -> Type) (b :: k -> Type) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Github # unpower :: forall (b :: k -> Type) n (a :: k -> Type). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Github # | |||||||||
| Functor Either Source Github # | |||||||||
| Functor (,) Source Github # | |||||||||
| CategoryOf k1 => Closed (PROD (k1 -> Type)) Source Github # | |||||||||
Methods withObExp :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github # 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 Github # apply :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github # (^^^) :: 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 Github # | |||||||||
| Monoidal (Type -> Type) Source Github # | Composition as monoidal tensor. | ||||||||
Associated Types
Methods withOb2 :: forall (a :: Type -> Type) (b :: Type -> Type) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github # leftUnitor :: forall (a :: Type -> Type). Ob a => ((Unit :: Type -> Type) ** a) ~> a Source Github # leftUnitorInv :: forall (a :: Type -> Type). Ob a => a ~> ((Unit :: Type -> Type) ** a) Source Github # rightUnitor :: forall (a :: Type -> Type). Ob a => (a ** (Unit :: Type -> Type)) ~> a Source Github # rightUnitorInv :: forall (a :: Type -> Type). Ob a => a ~> (a ** (Unit :: Type -> Type)) Source Github # associator :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github # associatorInv :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github # | |||||||||
| CategoryOf (k1 -> k2 -> k3 -> k4 -> Type) Source Github # | The category of functors with target category k2 -> k3 -> k4 -> Type. | ||||||||
| CategoryOf (k1 -> k2 -> k3 -> Type) Source Github # | The category of functors with target category | ||||||||
| CategoryOf (k1 -> Type) Source Github # | The category of functors with target category Hask. | ||||||||
| HasBinaryCoproducts (k1 -> Type) Source Github # | |||||||||
Methods withObCoprod :: forall (a :: k1 -> Type) (b :: k1 -> Type) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github # lft :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => a ~> (a || b) Source Github # rgt :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => b ~> (a || b) Source Github # (|||) :: forall (x :: k1 -> Type) (a :: k1 -> Type) (y :: k1 -> Type). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github # (+++) :: forall (a :: k1 -> Type) (b :: k1 -> Type) (x :: k1 -> Type) (y :: k1 -> Type). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github # | |||||||||
| HasBinaryProducts (k1 -> Type) Source Github # | |||||||||
Methods withObProd :: forall (a :: k1 -> Type) (b :: k1 -> Type) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Github # fst :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => (a && b) ~> a Source Github # snd :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => (a && b) ~> b Source Github # (&&&) :: forall (a :: k1 -> Type) (x :: k1 -> Type) (y :: k1 -> Type). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Github # (***) :: forall (a :: k1 -> Type) (b :: k1 -> Type) (x :: k1 -> Type) (y :: k1 -> Type). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Github # | |||||||||
| Coclosed (Type -> Type) Source Github # | |||||||||
Methods withObCoExp :: forall (a :: Type -> Type) (b :: Type -> Type) r. (Ob a, Ob b) => (Ob (a <~~ b) => r) -> r Source Github # coeval :: forall (a :: Type -> Type) (b :: Type -> Type). (Ob a, Ob b) => a ~> ((a <~~ b) ** b) Source Github # coevalUniv :: forall (b :: Type -> Type) (c :: Type -> Type) (a :: Type -> Type). (Ob b, Ob c) => (a ~> (c ** b)) -> (a <~~ b) ~> c Source Github # | |||||||||
| Closed (Type -> Type) Source Github # | |||||||||
Methods withObExp :: forall (a :: Type -> Type) (b :: Type -> Type) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github # curry :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github # apply :: forall (a :: Type -> Type) (b :: Type -> Type). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github # (^^^) :: forall (a :: Type -> Type) (b :: Type -> Type) (x :: Type -> Type) (y :: Type -> Type). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Github # | |||||||||
| CategoryOf k1 => HasInitialObject (k1 -> Type) Source Github # | |||||||||
Associated Types
| |||||||||
| CategoryOf k1 => HasTerminalObject (k1 -> Type) Source Github # | |||||||||
Associated Types
| |||||||||
| (Monoidal (SUBCAT ob), Strong (SUBCAT ob) ((~>) :: CAT Type)) => MonoidalAction (SUBCAT ob) Type Source Github # | |||||||||
Methods withObAct :: forall (a :: SUBCAT ob) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Github # unitor :: Ob x => Act (Unit :: SUBCAT ob) x ~> x Source Github # unitorInv :: Ob x => x ~> Act (Unit :: SUBCAT ob) x Source Github # multiplicator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Github # multiplicatorInv :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Github # | |||||||||
| MonoidalAction (Type -> Type) Type Source Github # | |||||||||
Associated Types
Methods withObAct :: forall (a :: Type -> Type) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Github # unitor :: Ob x => Act (Unit :: Type -> Type) x ~> x Source Github # unitorInv :: Ob x => x ~> Act (Unit :: Type -> Type) x Source Github # multiplicator :: forall (a :: Type -> Type) (b :: Type -> Type) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Github # multiplicatorInv :: forall (a :: Type -> Type) (b :: Type -> Type) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Github # | |||||||||
| Functor ((:.:) :: (j +-> k) -> (i +-> j) -> k -> i -> Type) Source Github # | |||||||||