data-functor-logistic-0.0: Updatable analogue of Distributive functors

Safe Haskell | Safe-Inferred
Language | Haskell2010

Data.Functor.Logistic

# Documentation

class Functor t => Logistic (t :: Type -> Type) 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 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 Par1 Source # |
Instance details Defined in Data.Functor.Logistic Methods deliver :: Contravariant f => f (Par1 a -> Par1 a) -> Par1 (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 (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 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 #
(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 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 #
Eq r => Logistic ((->) r) 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, 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 #
(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 (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 #

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