monoidal-functors-0.1.1.0: Monoidal Functors Library
Safe HaskellNone
LanguageHaskell2010

Data.Functor.Invariant

Documentation

class Invariant f where Source #

Methods

invmap :: (a -> a') -> (a' -> a) -> f a -> f a' Source #

Instances

Instances details
Invariant [] Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> [a] -> [a'] Source #

Invariant Maybe Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Maybe a -> Maybe a' Source #

Invariant IO Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> IO a -> IO a' Source #

Invariant ZipList Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> ZipList a -> ZipList a' Source #

Invariant Identity Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Identity a -> Identity a' Source #

Invariant NonEmpty Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> NonEmpty a -> NonEmpty a' Source #

Invariant (Either e) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Either e a -> Either e a' Source #

Invariant ((,) x1) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> (x1, a) -> (x1, a') Source #

Contravariant f => Invariant (FromContra f) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> FromContra f a -> FromContra f a' Source #

Functor f => Invariant (FromFunctor f) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> FromFunctor f a -> FromFunctor f a' Source #

Invariant ((,,) x1 x2) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> (x1, x2, a) -> (x1, x2, a') Source #

Invariant ((,,,) x1 x2 x3) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> (x1, x2, x3, a) -> (x1, x2, x3, a') Source #

(Functor f, Functor g) => Invariant (Product f g) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Product f g a -> Product f g a' Source #

(Functor f, Functor g) => Invariant (Sum f g) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Sum f g a -> Sum f g a' Source #

(Functor f, Functor g) => Invariant (Compose f g) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> Compose f g a -> Compose f g a' Source #

invIso :: Invariant f => Iso (->) a a' -> Iso (->) (f a) (f a') Source #

newtype FromFunctor f a Source #

Constructors

FromFunctor 

Fields

Instances

Instances details
Functor f => Invariant (FromFunctor f) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> FromFunctor f a -> FromFunctor f a' Source #

newtype FromContra f a Source #

Constructors

FromContra 

Fields

Instances

Instances details
Contravariant f => Invariant (FromContra f) Source # 
Instance details

Defined in Data.Functor.Invariant

Methods

invmap :: (a -> a') -> (a' -> a) -> FromContra f a -> FromContra f a' Source #