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

Proarrow.Functor

Documentation

type (.~>) (f :: k -> k1) (g :: k -> k1) = forall (a :: k). Ob a => f a ~> g a infixr 0 Source Comments #

class (CategoryOf k1, CategoryOf k2, forall (a :: k1). Ob a => Ob' (f a)) => Functor (f :: k1 -> k2) where Source Comments #

Methods

map :: forall (a :: k1) (b :: k1). (a ~> b) -> f a ~> f b Source Comments #

Instances

Instances details
Functor NonEmpty Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> NonEmpty a ~> NonEmpty b Source Comments #

Functor Identity Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> Identity a ~> Identity b Source Comments #

Functor Ur Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

map :: (a ~> b) -> Ur a ~> Ur b Source Comments #

Functor Maybe Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> Maybe a ~> Maybe b Source Comments #

Functor [] Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> [a] ~> [b] Source Comments #

Functor (Either a :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a0 ~> b) -> Either a a0 ~> Either a b Source Comments #

Functor (CatAsComonoid k :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: (a ~> b) -> CatAsComonoid k a ~> CatAsComonoid k b Source Comments #

Functor (ListF x :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

map :: (a ~> b) -> ListF x a ~> ListF x b Source Comments #

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

Defined in Proarrow.Functor

Methods

map :: (a0 ~> b) -> (a, a0) ~> (a, b) Source Comments #

Functor f => Functor (Prelude f :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> Prelude f a ~> Prelude f b Source Comments #

CategoryOf k => Functor (Const x :: k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: forall (a :: k) (b :: k). (a ~> b) -> Const x a ~> Const x b Source Comments #

(CategoryOf k, Functor f) => Functor (Ap f :: k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

map :: forall (a :: k) (b :: k). (a ~> b) -> Ap f a ~> Ap f b Source Comments #

Functor (HaskLan j f :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: (a ~> b) -> HaskLan j f a ~> HaskLan j f b Source Comments #

Functor (HaskRan j h :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: (a ~> b) -> HaskRan j h a ~> HaskRan j h b Source Comments #

Functor ((->) a :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a0 ~> b) -> (a -> a0) ~> (a -> b) Source Comments #

(Functor f, Functor g) => Functor (Product f g :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: forall (a :: k1) (b :: k1). (a ~> b) -> Product f g a ~> Product f g b Source Comments #

(Functor f, Functor g) => Functor (Sum f g :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: forall (a :: k1) (b :: k1). (a ~> b) -> Sum f g a ~> Sum f g b Source Comments #

(Functor f, Functor g) => Functor (f :~>: g :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

map :: forall (a :: k1) (b :: k1). (a ~> b) -> (f :~>: g) a ~> (f :~>: g) b Source Comments #

(Functor f, Functor g) => Functor (Compose f g :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: forall (a :: k1) (b :: k1). (a ~> b) -> Compose f g a ~> Compose f g b Source Comments #

Profunctor p => Functor (FromProfunctor p a :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: forall (a0 :: k1) (b :: k1). (a0 ~> b) -> FromProfunctor p a a0 ~> FromProfunctor p a b Source Comments #

Profunctor p => Functor (Op p a :: OPPOSITE k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

map :: forall (a0 :: OPPOSITE k) (b :: OPPOSITE k). (a0 ~> b) -> Op p a a0 ~> Op p a b Source Comments #

Functor (Ran :: OPPOSITE (i +-> j) -> (i +-> k) -> k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

map :: forall (a :: OPPOSITE (i +-> j)) (b :: OPPOSITE (i +-> j)). (a ~> b) -> (Ran a :: (i +-> k) -> k -> j -> Type) ~> (Ran b :: (i +-> k) -> k -> j -> Type) Source Comments #

Functor (Rift :: OPPOSITE (k +-> i) -> (j +-> i) -> k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

map :: forall (a :: OPPOSITE (k +-> i)) (b :: OPPOSITE (k +-> i)). (a ~> b) -> (Rift a :: (j +-> i) -> k -> j -> Type) ~> (Rift b :: (j +-> i) -> k -> j -> Type) Source Comments #

Functor (Fix :: PRO k k -> k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

map :: forall (a :: PRO k k) (b :: PRO k k). (a ~> b) -> Fix a ~> Fix b Source Comments #

Functor (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

map :: forall (a :: k -> k -> Type) (b :: k -> k -> Type). (a ~> b) -> FreePromonad a ~> FreePromonad b Source Comments #

Functor (Ap :: (k -> Type) -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

map :: forall (a :: k -> Type) (b :: k -> Type). (a ~> b) -> Ap a ~> Ap b Source Comments #

Functor (Coyoneda :: (j -> k -> Type) -> j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Coyoneda

Methods

map :: forall (a :: j -> k -> Type) (b :: j -> k -> Type). (a ~> b) -> Coyoneda a ~> Coyoneda b Source Comments #

Functor (Yoneda :: (j -> k -> Type) -> j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

map :: forall (a :: j -> k -> Type) (b :: j -> k -> Type). (a ~> b) -> Yoneda a ~> Yoneda b Source Comments #

Functor (Day :: (k1 -> k2 -> Type) -> (k1 -> k2 -> Type) -> k1 -> k2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

map :: forall (a :: k1 -> k2 -> Type) (b :: k1 -> k2 -> Type). (a ~> b) -> Day a ~> Day b Source Comments #

Functor ((:.:) :: (j +-> k) -> (i +-> j) -> k -> i -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

map :: forall (a :: j +-> k) (b :: j +-> k). (a ~> b) -> ((:.:) a :: (i +-> j) -> k -> i -> Type) ~> ((:.:) b :: (i +-> j) -> k -> i -> Type) Source Comments #

Profunctor p => Functor (Day p :: (k1 -> k2 -> Type) -> k1 -> k2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

map :: forall (a :: k1 -> k2 -> Type) (b :: k1 -> k2 -> Type). (a ~> b) -> Day p a ~> Day p b Source Comments #

Profunctor p => Functor ((:.:) p :: (i +-> j) -> k -> i -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

map :: forall (a :: i +-> j) (b :: i +-> j). (a ~> b) -> (p :.: a) ~> (p :.: b) Source Comments #

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

Defined in Proarrow.Profunctor.Ran

Methods

map :: forall (a :: i +-> k) (b :: i +-> k). (a ~> b) -> Ran ('OP j2) a ~> Ran ('OP j2) b Source Comments #

Profunctor j2 => Functor (Rift ('OP j2) :: (j1 +-> i) -> k -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

map :: forall (a :: j1 +-> i) (b :: j1 +-> i). (a ~> b) -> Rift ('OP j2) a ~> Rift ('OP j2) b Source Comments #

Profunctor j2 => Functor (Precompose j2 :: (j1 +-> k) -> k -> i -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

map :: forall (a :: j1 +-> k) (b :: j1 +-> k). (a ~> b) -> Precompose j2 a ~> Precompose j2 b Source Comments #

(Bicategory kk, Ob s, Ob0 kk h, Ob0 kk i, Ob0 kk j, Ob0 kk k2) => Functor (P kk kk (HK kk) s :: kk j k2 -> HK kk h j +-> HK kk i k2) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Methods

map :: forall (a :: kk j k2) (b :: kk j k2). (a ~> b) -> P kk kk (HK kk) s a ~> P kk kk (HK kk) s b Source Comments #

(Bicategory kk, Ob0 kk h, Ob0 kk i, Ob0 kk j, Ob0 kk k2) => Functor (P kk kk (HK kk) :: COK kk h i -> kk j k2 -> HK kk h j +-> HK kk i k2) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Methods

map :: forall (a :: COK kk h i) (b :: COK kk h i). (a ~> b) -> P kk kk (HK kk) a ~> P kk kk (HK kk) b Source Comments #

newtype Prelude (f :: k -> Type) (a :: k) Source Comments #

Constructors

Prelude 

Fields

Instances

Instances details
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 #

Alternative f => Alternative (Prelude f :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Applicative

Methods

empty :: Ob a => El (Prelude f a) Source Comments #

alt :: (Ob a, Ob b) => ((a || b) ~> c) -> (Prelude f a && Prelude f b) ~> Prelude f c Source Comments #

Applicative f => Applicative (Prelude f :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Applicative

Methods

pure :: El a -> El (Prelude f a) Source Comments #

liftA2 :: (Ob a, Ob b) => ((a && b) ~> c) -> (Prelude f a && Prelude f b) ~> Prelude f c Source Comments #

Functor f => Functor (Prelude f :: Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: (a ~> b) -> Prelude f a ~> Prelude f b 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 #

Monad m => Procomonad (Costar (Prelude m) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

newtype FromProfunctor (p :: k -> k1 -> Type) (a :: k) (b :: k1) Source Comments #

Constructors

FromProfunctor 

Fields

Instances

Instances details
(MonoidalProfunctor p, Ob x, Cartesian j, Cartesian k) => Applicative (FromProfunctor p x :: j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Applicative

Methods

pure :: forall (a :: j). El a -> El (FromProfunctor p x a) Source Comments #

liftA2 :: forall (a :: j) (b :: j) (c :: j). (Ob a, Ob b) => ((a && b) ~> c) -> (FromProfunctor p x a && FromProfunctor p x b) ~> FromProfunctor p x c Source Comments #

Profunctor p => Functor (FromProfunctor p a :: k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Functor

Methods

map :: forall (a0 :: k1) (b :: k1). (a0 ~> b) -> FromProfunctor p a a0 ~> FromProfunctor p a b Source Comments #