Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Nat (f :: j -> k) (g :: j -> k) where Source Comments #
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 # | |
Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Comments # | |
Strong (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Replacing a b :: Type -> Type -> Type) Source Comments # | |
Strong (Nat :: (Type -> Type) -> (Type -> 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 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 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 # | |
(!) :: 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 CatAsComonoid k a where Source Comments #
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 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 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 #
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 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 id :: Ob a => ComonoidAsCat w a a Source Comments # (.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Comments # |
newtype NatK j k Source Comments #
NT (j -> k) |
Instances
CategoryOf (NatK j k) Source Comments # | |
Defined in Proarrow.Category.Instance.Nat | |
Promonad (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # | |
Profunctor (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # | |
type (~>) Source Comments # | |
type Ob (f :: NatK j k) Source Comments # | |
type UN ('NT :: (j -> k) -> NatK j k) ('NT f :: NatK j k) Source Comments # | |
data Nat' (f :: NatK k k1) (g :: NatK k k1) where Source Comments #
Orphan instances
(Functor f, Functor g) => Functor (Product f g :: k1 -> Type) Source Comments # | |||||
(Functor f, Functor g) => Functor (Sum f g :: k1 -> Type) Source Comments # | |||||
CategoryOf k1 => Closed (PROD (k1 -> Type)) Source Comments # | |||||
curry' :: forall (a :: PROD (k1 -> Type)) (b :: PROD (k1 -> Type)) (c :: PROD (k1 -> Type)). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry' :: forall (b :: PROD (k1 -> Type)) (c :: PROD (k1 -> Type)) (a :: PROD (k1 -> Type)). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (b :: PROD (k1 -> Type)) (y :: PROD (k1 -> Type)) (x :: PROD (k1 -> Type)) (a :: PROD (k1 -> Type)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
Monoidal (Type -> Type) 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 # | |||||
CategoryOf (k1 -> k2 -> k3 -> Type) Source Comments # | |||||
CategoryOf (k1 -> Type) Source Comments # | |||||
HasBinaryCoproducts (k1 -> Type) Source Comments # | |||||
lft :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: k1 -> Type) (a' :: k1 -> Type) (b :: k1 -> Type). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: k1 -> Type) (b :: k1 -> Type) (b' :: k1 -> Type). Obj a -> (b ~> 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 # | |||||
fst :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => (a && b) ~> a Source Comments # fst' :: forall (a :: k1 -> Type) (a' :: k1 -> Type) (b :: k1 -> Type). (a ~> a') -> Obj b -> (a && b) ~> a' Source Comments # snd :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => (a && b) ~> b Source Comments # snd' :: forall (a :: k1 -> Type) (b :: k1 -> Type) (b' :: k1 -> Type). Obj a -> (b ~> 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 # | |||||
Closed (Type -> Type) Source Comments # | |||||
curry' :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments # uncurry' :: forall (b :: Type -> Type) (c :: Type -> Type) (a :: Type -> Type). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments # (^^^) :: forall (b :: Type -> Type) (y :: Type -> Type) (x :: Type -> Type) (a :: Type -> Type). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments # | |||||
CategoryOf k1 => HasInitialObject (k1 -> Type) Source Comments # | |||||
| |||||
CategoryOf k1 => HasTerminalObject (k1 -> Type) Source Comments # | |||||
| |||||
MonoidalAction (Type -> Type) Type 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 # |