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
     
  • => { getStar :: a ~> f b
     
  •    } -> Star f a b
     

Instances

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

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

Defined in Proarrow.Category.Monoidal.Applicative

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Applicative

Methods

pureP :: forall (a :: j) (b :: k). Ob a => El b -> Star f a b Source Comments #

apP :: forall (a :: j) (b :: k) (c :: k). Star f a b -> Star f a c -> Star f a (b && c) 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 :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

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

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

repMap :: forall (a :: k) (b :: k). (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 => MonoidalAction Type (KlCat m) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall p q (x :: KlCat m) (y :: KlCat m). (p ~> q) -> (x ~> y) -> Act p x ~> Act q y Source Comments #

unitor :: forall (x :: KlCat m). Obj x -> Act (Unit :: Type) x ~> x Source Comments #

unitorInv :: forall (x :: KlCat m). Obj x -> x ~> Act (Unit :: Type) x Source Comments #

multiplicator :: forall p q (x :: KlCat m). Obj p -> Obj q -> Obj x -> Act p (Act q x) ~> Act (p ** q) x Source Comments #

multiplicatorInv :: forall p q (x :: KlCat m). Obj p -> Obj q -> Obj x -> Act (p ** q) x ~> Act p (Act q x) 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 #

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

Defined in Proarrow.Profunctor.Rift

Methods

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

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

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

Defined in Proarrow.Profunctor.Ran

Methods

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

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

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

Defined in Proarrow.Profunctor.Star

type (Star f :: j -> k -> Type) % (a :: k) = f a
type Act (p :: Type) ('KL x :: KLEISLI (Star (Prelude m))) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

type Act (p :: Type) ('KL x :: KLEISLI (Star (Prelude m))) = 'KL (p ** x) :: KLEISLI (Star (Prelude m))

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