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