categories-1.0.7: Categories

Copyright2008-2010 Edward Kmett
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable (functional-dependencies)
Safe HaskellTrustworthy
LanguageHaskell2010

Control.Categorical.Functor

Description

A more categorical definition of Functor

Documentation

class (Category r, Category t) => Functor f r t | f r -> t, f t -> r where Source #

Minimal complete definition

fmap

Methods

fmap :: r a b -> t (f a) (f b) Source #

Instances

Functor [] (->) (->) Source # 

Methods

fmap :: (a -> b) -> [a] -> [b] Source #

Functor Maybe (->) (->) Source # 

Methods

fmap :: (a -> b) -> Maybe a -> Maybe b Source #

Functor IO (->) (->) Source # 

Methods

fmap :: (a -> b) -> IO a -> IO b Source #

Functor (Either a) (->) (->) Source # 

Methods

fmap :: (a -> b) -> Either a a -> Either a b Source #

Functor ((,) a) (->) (->) Source # 

Methods

fmap :: (a -> b) -> (a, a) -> (a, b) Source #

Functor f => Functor (LiftedFunctor f) (->) (->) Source # 

Methods

fmap :: (a -> b) -> LiftedFunctor f a -> LiftedFunctor f b Source #

class Functor f a a => Endofunctor f a Source #

Instances

Functor f a a => Endofunctor f a Source # 

newtype LiftedFunctor f a Source #

Constructors

LiftedFunctor (f a) 

Instances

Functor f => Functor (LiftedFunctor f) (->) (->) Source # 

Methods

fmap :: (a -> b) -> LiftedFunctor f a -> LiftedFunctor f b Source #

(Typeable (* -> *) f, Data (f a), Data a) => Data (LiftedFunctor f a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LiftedFunctor f a -> c (LiftedFunctor f a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LiftedFunctor f a) #

toConstr :: LiftedFunctor f a -> Constr #

dataTypeOf :: LiftedFunctor f a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (LiftedFunctor f a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LiftedFunctor f a)) #

gmapT :: (forall b. Data b => b -> b) -> LiftedFunctor f a -> LiftedFunctor f a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LiftedFunctor f a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LiftedFunctor f a -> r #

gmapQ :: (forall d. Data d => d -> u) -> LiftedFunctor f a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LiftedFunctor f a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LiftedFunctor f a -> m (LiftedFunctor f a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LiftedFunctor f a -> m (LiftedFunctor f a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LiftedFunctor f a -> m (LiftedFunctor f a) #

Read (f a) => Read (LiftedFunctor f a) Source # 
Show (f a) => Show (LiftedFunctor f a) Source # 

newtype LoweredFunctor f a Source #

Constructors

LoweredFunctor (f a) 

Instances

Functor f (->) (->) => Functor (LoweredFunctor f) Source # 

Methods

fmap :: (a -> b) -> LoweredFunctor f a -> LoweredFunctor f b #

(<$) :: a -> LoweredFunctor f b -> LoweredFunctor f a #

(Typeable (* -> *) f, Data (f a), Data a) => Data (LoweredFunctor f a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LoweredFunctor f a -> c (LoweredFunctor f a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LoweredFunctor f a) #

toConstr :: LoweredFunctor f a -> Constr #

dataTypeOf :: LoweredFunctor f a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (LoweredFunctor f a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LoweredFunctor f a)) #

gmapT :: (forall b. Data b => b -> b) -> LoweredFunctor f a -> LoweredFunctor f a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LoweredFunctor f a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LoweredFunctor f a -> r #

gmapQ :: (forall d. Data d => d -> u) -> LoweredFunctor f a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LoweredFunctor f a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LoweredFunctor f a -> m (LoweredFunctor f a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LoweredFunctor f a -> m (LoweredFunctor f a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LoweredFunctor f a -> m (LoweredFunctor f a) #

Read (f a) => Read (LoweredFunctor f a) Source # 
Show (f a) => Show (LoweredFunctor f a) Source #