| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Limit
Synopsis
- class Representable (Limit j1 d) => IsRepresentableLimit (j1 :: i +-> j) (d :: i +-> k)
- class (Profunctor j, forall (d :: i +-> k). Representable d => IsRepresentableLimit j d) => HasLimits (j :: i +-> a) k where
- mapLimit :: forall {a} {i} (j :: i +-> a) k (p :: i +-> k) (q :: i +-> k). (HasLimits j k, Representable p, Representable q) => (p ~> q) -> Limit j p ~> Limit j q
- type Unweighted = TerminalProfunctor :: k -> j -> Type
- type O1 = 'L '() :: COPRODUCT () k
- type O2 = 'R '() :: COPRODUCT j ()
- type At1 (d :: COPRODUCT () k1 +-> k) = d % (O1 :: COPRODUCT () k1)
- type At2 (d :: COPRODUCT j () +-> k) = d % (O2 :: COPRODUCT j ())
- data family ProductLimit :: (COPRODUCT () () +-> k) -> () +-> k
- data family PowerLimit :: v -> (() +-> k) -> () +-> k
- newtype End (d :: (OPPOSITE k, k) +-> Type) = End {}
- data family EndLimit :: ((OPPOSITE k, k) +-> Type) -> () +-> Type
- data Hom (a :: ()) (b :: (OPPOSITE k, k)) where
- newtype AnyLimit (j :: k -> k1 -> Type) (a :: k) (b :: k1) = AnyLimit (j a b)
- newtype Ran (j :: i +-> a) (d :: i +-> Type) (a1 :: a) = Ran {}
Documentation
class Representable (Limit j1 d) => IsRepresentableLimit (j1 :: i +-> j) (d :: i +-> k) Source Github #
Instances
| Representable (Limit j2 d) => IsRepresentableLimit (j2 :: i +-> j1) (d :: i +-> k) Source Github # | |
Defined in Proarrow.Limit | |
class (Profunctor j, forall (d :: i +-> k). Representable d => IsRepresentableLimit j d) => HasLimits (j :: i +-> a) k where Source Github #
profunctor-weighted limits
Methods
limit :: forall (d :: i +-> k). Representable d => (Limit j d :.: j) :~> d Source Github #
limitUniv :: forall (d :: i +-> k) (p :: a +-> k). (Representable d, Profunctor p) => ((p :.: j) :~> d) -> p :~> Limit j d Source Github #
Instances
mapLimit :: forall {a} {i} (j :: i +-> a) k (p :: i +-> k) (q :: i +-> k). (HasLimits j k, Representable p, Representable q) => (p ~> q) -> Limit j p ~> Limit j q Source Github #
type Unweighted = TerminalProfunctor :: k -> j -> Type Source Github #
data family ProductLimit :: (COPRODUCT () () +-> k) -> () +-> k Source Github #
Instances
| (HasBinaryProducts k, Representable d) => FunctorForRep (ProductLimit d :: () +-> k) Source Github # | |
Defined in Proarrow.Limit Methods fmap :: forall (a :: ()) (b :: ()). (a ~> b) -> (ProductLimit d @ a) ~> (ProductLimit d @ b) Source Github # | |
| type (ProductLimit d :: () +-> k) @ '() Source Github # | |
Defined in Proarrow.Limit | |
data family PowerLimit :: v -> (() +-> k) -> () +-> k Source Github #
Instances
| (Representable d, Powered v k, Ob n) => FunctorForRep (PowerLimit n d :: () +-> k) Source Github # | |
Defined in Proarrow.Limit Methods fmap :: forall (a :: ()) (b :: ()). (a ~> b) -> (PowerLimit n d @ a) ~> (PowerLimit n d @ b) Source Github # | |
| type (PowerLimit n d :: () +-> k) @ '() Source Github # | |
Defined in Proarrow.Limit | |
data family EndLimit :: ((OPPOSITE k, k) +-> Type) -> () +-> Type Source Github #
data Hom (a :: ()) (b :: (OPPOSITE k, k)) where Source Github #
Instances
| CategoryOf k => HasLimits (Hom :: () -> (OPPOSITE k, k) -> Type) Type Source Github # | |
Defined in Proarrow.Limit Methods limit :: forall (d :: (OPPOSITE k, k) +-> Type). Representable d => (Limit (Hom :: () -> (OPPOSITE k, k) -> Type) d :.: (Hom :: () -> (OPPOSITE k, k) -> Type)) :~> d Source Github # limitUniv :: forall (d :: (OPPOSITE k, k) +-> Type) (p :: () +-> Type). (Representable d, Profunctor p) => ((p :.: (Hom :: () -> (OPPOSITE k, k) -> Type)) :~> d) -> p :~> Limit (Hom :: () -> (OPPOSITE k, k) -> Type) d Source Github # | |
| CategoryOf k => Profunctor (Hom :: () -> (OPPOSITE k, k) -> Type) Source Github # | |
Defined in Proarrow.Limit Methods dimap :: forall (c :: ()) (a :: ()) (b :: (OPPOSITE k, k)) (d :: (OPPOSITE k, k)). (c ~> a) -> (b ~> d) -> Hom a b -> Hom c d Source Github # lmap :: forall (c :: ()) (a :: ()) (b :: (OPPOSITE k, k)). (c ~> a) -> Hom a b -> Hom c b Source Github # rmap :: forall (b :: (OPPOSITE k, k)) (d :: (OPPOSITE k, k)) (a :: ()). (b ~> d) -> Hom a b -> Hom a d Source Github # (\\) :: forall (a :: ()) (b :: (OPPOSITE k, k)) r. ((Ob a, Ob b) => r) -> Hom a b -> r Source Github # | |
| type Limit (Hom :: () -> (OPPOSITE k, k) -> Type) (d :: (OPPOSITE k, k) +-> Type) Source Github # | |
newtype AnyLimit (j :: k -> k1 -> Type) (a :: k) (b :: k1) Source Github #
Constructors
| AnyLimit (j a b) |
Instances
| Profunctor j2 => Profunctor (AnyLimit j2 :: k -> j1 -> Type) Source Github # | |
Defined in Proarrow.Limit Methods dimap :: forall (c :: k) (a :: k) (b :: j1) (d :: j1). (c ~> a) -> (b ~> d) -> AnyLimit j2 a b -> AnyLimit j2 c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: j1). (c ~> a) -> AnyLimit j2 a b -> AnyLimit j2 c b Source Github # rmap :: forall (b :: j1) (d :: j1) (a :: k). (b ~> d) -> AnyLimit j2 a b -> AnyLimit j2 a d Source Github # (\\) :: forall (a :: k) (b :: j1) r. ((Ob a, Ob b) => r) -> AnyLimit j2 a b -> r Source Github # | |
| Profunctor j => HasLimits (AnyLimit j :: a -> i -> Type) Type Source Github # | |
Defined in Proarrow.Limit | |
| type Limit (AnyLimit j :: a -> i -> Type) (d :: i +-> Type) Source Github # | |