proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Profunctor.Star

Documentation

data Star (f :: k1 -> k2) (a :: k2) (b :: k1) where Source Comments #

Constructors

Star 

Fields

  • :: forall {k1} {k2} (b :: k1) (a :: k2) (f :: k1 -> k2). Ob b
     
  • => { unStar :: a ~> f b
     
  •    } -> Star f a b
     

Instances

Instances details
Functor f => Strong (->) (Star f :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

act :: (a -> b) -> Star f x y -> Star f (Act a x) (Act b y) Source Comments #

Monad m => Strong (->) (Updating a b :: Type -> KlCat m -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall a0 b0 x (y :: KlCat m). (a0 -> b0) -> Updating a b x y -> Updating a b (Act a0 x) (Act b0 y) Source Comments #

(Applicative f, Cartesian j, Cartesian k) => MonoidalProfunctor (Star f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: Star f (Unit :: k) (Unit :: j) Source Comments #

par :: forall (x1 :: k) (x2 :: j) (y1 :: k) (y2 :: j). Star f x1 x2 -> Star f y1 y2 -> Star f (x1 ** y1) (x2 ** y2) Source Comments #

Functor f => Profunctor (Star f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Star f a b -> Star f c d Source Comments #

(\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> Star f a b -> r Source Comments #

Functor f => Representable (Star f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

index :: forall (a :: k) (b :: j). Star f a b -> a ~> (Star f % b) Source Comments #

tabulate :: forall (b :: j) (a :: k). Ob b => (a ~> (Star f % b)) -> Star f a b Source Comments #

repMap :: forall (a :: j) (b :: j). (a ~> b) -> (Star f % a) ~> (Star f % b) Source Comments #

Adjunction (Star ((,) a) :: Type -> Type -> Type) (Star ((->) a) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: Ob a0 => (Star ((->) a) :.: Star ((,) a)) a0 a0 Source Comments #

counit :: (Star ((,) a) :.: Star ((->) a)) :~> ((~>) :: CAT Type) Source Comments #

Functor f => Adjunction (Star f :: k -> j -> Type) (Costar f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: j). Ob a => (Costar f :.: Star f) a a Source Comments #

counit :: (Star f :.: Costar f) :~> ((~>) :: CAT k) Source Comments #

Monad m => Profunctor (Updating a b :: Type -> KlCat m -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall c a0 (b0 :: KlCat m) (d :: KlCat m). (c ~> a0) -> (b0 ~> d) -> Updating a b a0 b0 -> Updating a b c d Source Comments #

(\\) :: forall a0 (b0 :: KlCat m) r. ((Ob a0, Ob b0) => r) -> Updating a b a0 b0 -> r Source Comments #

Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

id :: Ob a => Star (Prelude m) a a Source Comments #

(.) :: Star (Prelude m) b c -> Star (Prelude m) a b -> Star (Prelude m) a c Source Comments #

(Alternative f, Cartesian k, Cocartesian j) => MonoidalProfunctor (CoprodDom (Star f) :: k -> COPROD j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: CoprodDom (Star f) (Unit :: k) (Unit :: COPROD j) Source Comments #

par :: forall (x1 :: k) (x2 :: COPROD j) (y1 :: k) (y2 :: COPROD j). CoprodDom (Star f) x1 x2 -> CoprodDom (Star f) y1 y2 -> CoprodDom (Star f) (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor j => Adjunction (Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type) :: (i1 -> i2 -> Type) -> (i2 +-> k) -> Type) (Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type) :: (k -> i2 -> Type) -> (i2 +-> i1) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

unit :: forall (a :: i2 +-> k). Ob a => (Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type) :.: Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type)) a a Source Comments #

counit :: (Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type) :.: Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type)) :~> ((~>) :: CAT (i1 -> i2 -> Type)) Source Comments #

Profunctor j2 => Adjunction (Star (Precompose j2 :: (j1 +-> k) -> k -> i -> Type) :: (k -> i -> Type) -> (j1 +-> k) -> Type) (Star (Ran ('OP j2) :: (i +-> k) -> k -> j1 -> Type) :: (k -> j1 -> Type) -> (i +-> k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

unit :: forall (a :: j1 +-> k). Ob a => (Star (Ran ('OP j2) :: (i +-> k) -> k -> j1 -> Type) :.: Star (Precompose j2 :: (j1 +-> k) -> k -> i -> Type)) a a Source Comments #

counit :: (Star (Precompose j2 :: (j1 +-> k) -> k -> i -> Type) :.: Star (Ran ('OP j2) :: (i +-> k) -> k -> j1 -> Type)) :~> ((~>) :: CAT (k -> i -> Type)) Source Comments #

type (Star f :: k -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

type (Star f :: k -> j -> Type) % (a :: j) = f a

composeStar :: forall {k} {k1} (f :: k -> Type) (g :: k1 -> k). Functor f => (Star f :.: Star g) :~> Star (Compose f g) Source Comments #

data CoprodDom (p :: j +-> k) (a :: k) (b :: COPROD j) where Source Comments #

Constructors

Co 

Fields

  • :: forall {j} {k} (p :: j +-> k) (a :: k) (b1 :: j). { unCo :: p a b1
     
  •    } -> CoprodDom p a ('COPR b1)
     

Instances

Instances details
Profunctor p => Profunctor (CoprodDom p :: j1 -> COPROD j2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: j1) (a :: j1) (b :: COPROD j2) (d :: COPROD j2). (c ~> a) -> (b ~> d) -> CoprodDom p a b -> CoprodDom p c d Source Comments #

(\\) :: forall (a :: j1) (b :: COPROD j2) r. ((Ob a, Ob b) => r) -> CoprodDom p a b -> r Source Comments #

(Alternative f, Cartesian k, Cocartesian j) => MonoidalProfunctor (CoprodDom (Star f) :: k -> COPROD j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: CoprodDom (Star f) (Unit :: k) (Unit :: COPROD j) Source Comments #

par :: forall (x1 :: k) (x2 :: COPROD j) (y1 :: k) (y2 :: COPROD j). CoprodDom (Star f) x1 x2 -> CoprodDom (Star f) y1 y2 -> CoprodDom (Star f) (x1 ** y1) (x2 ** y2) Source Comments #

strength :: forall {k} (f :: k -> k) (a :: k) (b :: k). (Functor f, StrongProd (Star f), Ob a, Ob b) => (a && f b) ~> f (a && b) Source Comments #