data-functor-logistic-0.0: Updatable analogue of Distributive functors
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Functor.Logistic

Documentation

class Functor t => Logistic t where Source #

Minimal complete definition

Nothing

Methods

deliver :: Contravariant f => f (t a -> t a) -> t (f (a -> a)) Source #

default deliver :: (Generic1 t, Logistic (Rep1 t), Contravariant f) => f (t a -> t a) -> t (f (a -> a)) Source #

Instances

Instances details
Logistic Par1 Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f (Par1 a -> Par1 a) -> Par1 (f (a -> a)) Source #

Logistic Complex Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f (Complex a -> Complex a) -> Complex (f (a -> a)) Source #

Logistic Identity Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f (Identity a -> Identity a) -> Identity (f (a -> a)) Source #

Logistic (U1 :: Type -> Type) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f (U1 a -> U1 a) -> U1 (f (a -> a)) Source #

Logistic (Proxy :: Type -> Type) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f (Proxy a -> Proxy a) -> Proxy (f (a -> a)) Source #

Logistic f => Logistic (Rec1 f) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 (Rec1 f a -> Rec1 f a) -> Rec1 f (f0 (a -> a)) Source #

Eq r => Logistic ((->) r :: Type -> Type) Source #

Update only if the argument matches

Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f => f ((r -> a) -> r -> a) -> r -> f (a -> a) Source #

(Logistic f, Logistic g) => Logistic (f :*: g) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 ((f :*: g) a -> (f :*: g) a) -> (f :*: g) (f0 (a -> a)) Source #

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

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 (Product f g a -> Product f g a) -> Product f g (f0 (a -> a)) Source #

Logistic f => Logistic (M1 i c f) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 (M1 i c f a -> M1 i c f a) -> M1 i c f (f0 (a -> a)) Source #

(Logistic f, Logistic g, Applicative f, Traversable g, Distributive g) => Logistic (f :.: g) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 ((f :.: g) a -> (f :.: g) a) -> (f :.: g) (f0 (a -> a)) Source #

(Logistic f, Logistic g, Applicative f, Traversable g, Distributive g) => Logistic (Compose f g) Source # 
Instance details

Defined in Data.Functor.Logistic

Methods

deliver :: Contravariant f0 => f0 (Compose f g a -> Compose f g a) -> Compose f g (f0 (a -> a)) Source #

setters :: Logistic t => t ((a -> a) -> t a -> t a) Source #