category-0.2.1.0: Categorical types and classes

Safe HaskellNone
LanguageHaskell2010

Control.Categorical.Functor

Synopsis

Documentation

class (Category s, Category t) => Functor (s :: α -> α -> *) (t :: β -> β -> *) (f :: α -> β) where Source #

Laws:

map id = id
map (f . g) = map f . map g

Methods

map :: s a b -> t (f a) (f b) Source #

Instances
Functor s t f => Functor (Iso s :: α -> α -> Type) (t :: β -> β -> Type) (f :: α -> β) Source # 
Instance details

Defined in Data.Morphism.Iso

Methods

map :: Iso s a b -> t (f a) (f b) Source #

Functor s t f => Functor (Iso s :: α -> α -> Type) (Dual t :: β -> β -> Type) (f :: α -> β) Source # 
Instance details

Defined in Data.Morphism.Iso

Methods

map :: Iso s a b -> Dual t (f a) (f b) Source #

Category s => Functor (s :: α -> α -> Type) ((->) :: Type -> Type -> Type) (s a :: α -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: s a0 b -> s a a0 -> s a b Source #

Category s => Functor (s :: α -> α -> Type) ((->) :: Type -> Type -> Type) (Proxy :: α -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: s a b -> Proxy a -> Proxy b Source #

Category s => Functor (s :: α -> α -> Type) ((->) :: Type -> Type -> Type) (Const a :: α -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: s a0 b -> Const a a0 -> Const a b Source #

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

Defined in Control.Categorical.Functor

Methods

map :: s a b -> Product f g a -> Product f g b Source #

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

Defined in Control.Categorical.Functor

Methods

map :: s a b -> Sum f g a -> Sum f g b Source #

Category s => Functor (Dual s :: k -> k -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (s :: k -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: Dual s a b -> NT (->) (s a) (s b) Source #

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

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> f a -> f b Source #

Functor ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Identity Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

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

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

Defined in Control.Categorical.Functor

Methods

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

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

Defined in Control.Categorical.Functor

Methods

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

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

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) (Either a) (Either b) Source #

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

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) ((,) a) ((,) b) Source #

Functor ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Const :: Type -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) (Const a) (Const b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) :: ((k -> Type) -> k -> Type) -> ((k -> Type) -> k -> Type) -> Type) (Product :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Product a) (Product b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) :: ((k -> Type) -> k -> Type) -> ((k -> Type) -> k -> Type) -> Type) (Sum :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Sum a) (Sum b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Product f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (->) (Product f a) (Product f b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Sum f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (->) (Sum f a) (Sum f b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k2 -> Type) -> (k2 -> Type) -> Type) :: ((k2 -> k1) -> k2 -> Type) -> ((k2 -> k1) -> k2 -> Type) -> Type) (Compose :: (k1 -> Type) -> (k2 -> k1) -> k2 -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Compose a) (Compose b) Source #

Functor s ((->) :: Type -> Type -> Type) f => Functor (NT s :: (k1 -> k2) -> (k1 -> k2) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (Compose f :: (k1 -> k2) -> k1 -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT s a b -> NT (->) (Compose f a) (Compose f b) Source #

type EndoFunctor s = Functor s s Source #

Deprecated: Use Endofunctor

(<$>) :: Functor s (->) f => s a b -> f a -> f b infixl 4 Source #

newtype NT s f g Source #

Constructors

NT 

Fields

  • nt :: forall a. s (f a) (g a)
     
Instances
Category s => Functor (Dual s :: k -> k -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (s :: k -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: Dual s a b -> NT (->) (s a) (s b) Source #

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

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) (Either a) (Either b) Source #

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

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) ((,) a) ((,) b) Source #

Functor ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Const :: Type -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: (a -> b) -> NT (->) (Const a) (Const b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) :: ((k -> Type) -> k -> Type) -> ((k -> Type) -> k -> Type) -> Type) (Product :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Product a) (Product b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) :: ((k -> Type) -> k -> Type) -> ((k -> Type) -> k -> Type) -> Type) (Sum :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Sum a) (Sum b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Product f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (->) (Product f a) (Product f b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (Sum f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (->) (Sum f a) (Sum f b) Source #

Functor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k2 -> Type) -> (k2 -> Type) -> Type) :: ((k2 -> k1) -> k2 -> Type) -> ((k2 -> k1) -> k2 -> Type) -> Type) (Compose :: (k1 -> Type) -> (k2 -> k1) -> k2 -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT (->) a b -> NT (NT (->)) (Compose a) (Compose b) Source #

Functor s ((->) :: Type -> Type -> Type) f => Functor (NT s :: (k1 -> k2) -> (k1 -> k2) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (Compose f :: (k1 -> k2) -> k1 -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

map :: NT s a b -> NT (->) (Compose f a) (Compose f b) Source #

Category s => Category (NT s :: (k1 -> k2) -> (k1 -> k2) -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

id :: NT s a a #

(.) :: NT s b c -> NT s a b -> NT s a c #

Groupoid s => Groupoid (NT s :: (k1 -> k2) -> (k1 -> k2) -> Type) Source # 
Instance details

Defined in Control.Categorical.Functor

Methods

invert :: NT s a b -> NT s b a Source #