pandora-0.1.5: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Pattern.Functor.Contravariant

Synopsis

Documentation

class Contravariant (t :: * -> *) where Source #

When providing a new instance, you should ensure it satisfies the two laws:
* Identity morphism: contramap identity ≡ identity
* Composition of morphisms: contramap f . contramap g ≡ contramap (g . f)

Minimal complete definition

(>$<)

Methods

(>$<) :: (a -> b) -> t b -> t a infixl 4 Source #

Infix version of contramap

contramap :: (a -> b) -> t b -> t a Source #

Prefix version of >$<

(>$) :: b -> t b -> t a infixl 4 Source #

Replace all locations in the output with the same value

($<) :: t b -> b -> t a infixl 4 Source #

Flipped version of >$

full :: t () -> t a Source #

Fill the input of evaluation

(>$$$<) :: (Contravariant u, Contravariant v) => (a -> b) -> t (u (v b)) -> t (u (v a)) Source #

Infix versions of contramap with various nesting levels

(>&<) :: t b -> (a -> b) -> t a Source #

Flipped infix version of contramap

Instances
Contravariant Predicate Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Predicate

Methods

(>$<) :: (a -> b) -> Predicate b -> Predicate a Source #

contramap :: (a -> b) -> Predicate b -> Predicate a Source #

(>$) :: b -> Predicate b -> Predicate a Source #

($<) :: Predicate b -> b -> Predicate a Source #

full :: Predicate () -> Predicate a Source #

(>$$$<) :: (Contravariant u, Contravariant v) => (a -> b) -> Predicate (u (v b)) -> Predicate (u (v a)) Source #

(>&<) :: Predicate b -> (a -> b) -> Predicate a Source #

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

Defined in Pandora.Paradigm.Basis.Proxy

Methods

(>$<) :: (a -> b) -> Proxy b -> Proxy a Source #

contramap :: (a -> b) -> Proxy b -> Proxy a Source #

(>$) :: b -> Proxy b -> Proxy a Source #

($<) :: Proxy b -> b -> Proxy a Source #

full :: Proxy () -> Proxy a Source #

(>$$$<) :: (Contravariant u, Contravariant v) => (a -> b) -> Proxy (u (v b)) -> Proxy (u (v a)) Source #

(>&<) :: Proxy b -> (a -> b) -> Proxy a Source #

Contravariant (Constant a :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Constant

Methods

(>$<) :: (a0 -> b) -> Constant a b -> Constant a a0 Source #

contramap :: (a0 -> b) -> Constant a b -> Constant a a0 Source #

(>$) :: b -> Constant a b -> Constant a a0 Source #

($<) :: Constant a b -> b -> Constant a a0 Source #

full :: Constant a () -> Constant a a0 Source #

(>$$$<) :: (Contravariant u, Contravariant v) => (a0 -> b) -> Constant a (u (v b)) -> Constant a (u (v a0)) Source #

(>&<) :: Constant a b -> (a0 -> b) -> Constant a a0 Source #

Contravariant (Lan t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Kan

Methods

(>$<) :: (a -> b0) -> Lan t u b b0 -> Lan t u b a Source #

contramap :: (a -> b0) -> Lan t u b b0 -> Lan t u b a Source #

(>$) :: b0 -> Lan t u b b0 -> Lan t u b a Source #

($<) :: Lan t u b b0 -> b0 -> Lan t u b a Source #

full :: Lan t u b () -> Lan t u b a Source #

(>$$$<) :: (Contravariant u0, Contravariant v) => (a -> b0) -> Lan t u b (u0 (v b0)) -> Lan t u b (u0 (v a)) Source #

(>&<) :: Lan t u b b0 -> (a -> b0) -> Lan t u b a Source #

(Covariant t, Contravariant u) => Contravariant (U Co Contra t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> U Co Contra t u b -> U Co Contra t u a Source #

contramap :: (a -> b) -> U Co Contra t u b -> U Co Contra t u a Source #

(>$) :: b -> U Co Contra t u b -> U Co Contra t u a Source #

($<) :: U Co Contra t u b -> b -> U Co Contra t u a Source #

full :: U Co Contra t u () -> U Co Contra t u a Source #

(>$$$<) :: (Contravariant u0, Contravariant v) => (a -> b) -> U Co Contra t u (u0 (v b)) -> U Co Contra t u (u0 (v a)) Source #

(>&<) :: U Co Contra t u b -> (a -> b) -> U Co Contra t u a Source #

(Contravariant t, Covariant u) => Contravariant (U Contra Co t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> U Contra Co t u b -> U Contra Co t u a Source #

contramap :: (a -> b) -> U Contra Co t u b -> U Contra Co t u a Source #

(>$) :: b -> U Contra Co t u b -> U Contra Co t u a Source #

($<) :: U Contra Co t u b -> b -> U Contra Co t u a Source #

full :: U Contra Co t u () -> U Contra Co t u a Source #

(>$$$<) :: (Contravariant u0, Contravariant v) => (a -> b) -> U Contra Co t u (u0 (v b)) -> U Contra Co t u (u0 (v a)) Source #

(>&<) :: U Contra Co t u b -> (a -> b) -> U Contra Co t u a Source #

(Covariant t, Covariant u, Contravariant v) => Contravariant (UU Co Co Contra t u v) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UU Co Co Contra t u v b -> UU Co Co Contra t u v a Source #

contramap :: (a -> b) -> UU Co Co Contra t u v b -> UU Co Co Contra t u v a Source #

(>$) :: b -> UU Co Co Contra t u v b -> UU Co Co Contra t u v a Source #

($<) :: UU Co Co Contra t u v b -> b -> UU Co Co Contra t u v a Source #

full :: UU Co Co Contra t u v () -> UU Co Co Contra t u v a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UU Co Co Contra t u v (u0 (v0 b)) -> UU Co Co Contra t u v (u0 (v0 a)) Source #

(>&<) :: UU Co Co Contra t u v b -> (a -> b) -> UU Co Co Contra t u v a Source #

(Covariant t, Contravariant u, Covariant v) => Contravariant (UU Co Contra Co t u v) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UU Co Contra Co t u v b -> UU Co Contra Co t u v a Source #

contramap :: (a -> b) -> UU Co Contra Co t u v b -> UU Co Contra Co t u v a Source #

(>$) :: b -> UU Co Contra Co t u v b -> UU Co Contra Co t u v a Source #

($<) :: UU Co Contra Co t u v b -> b -> UU Co Contra Co t u v a Source #

full :: UU Co Contra Co t u v () -> UU Co Contra Co t u v a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UU Co Contra Co t u v (u0 (v0 b)) -> UU Co Contra Co t u v (u0 (v0 a)) Source #

(>&<) :: UU Co Contra Co t u v b -> (a -> b) -> UU Co Contra Co t u v a Source #

(Contravariant t, Covariant u, Covariant v) => Contravariant (UU Contra Co Co t u v) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UU Contra Co Co t u v b -> UU Contra Co Co t u v a Source #

contramap :: (a -> b) -> UU Contra Co Co t u v b -> UU Contra Co Co t u v a Source #

(>$) :: b -> UU Contra Co Co t u v b -> UU Contra Co Co t u v a Source #

($<) :: UU Contra Co Co t u v b -> b -> UU Contra Co Co t u v a Source #

full :: UU Contra Co Co t u v () -> UU Contra Co Co t u v a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UU Contra Co Co t u v (u0 (v0 b)) -> UU Contra Co Co t u v (u0 (v0 a)) Source #

(>&<) :: UU Contra Co Co t u v b -> (a -> b) -> UU Contra Co Co t u v a Source #

(Contravariant t, Contravariant u, Contravariant v) => Contravariant (UU Contra Contra Contra t u v) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UU Contra Contra Contra t u v b -> UU Contra Contra Contra t u v a Source #

contramap :: (a -> b) -> UU Contra Contra Contra t u v b -> UU Contra Contra Contra t u v a Source #

(>$) :: b -> UU Contra Contra Contra t u v b -> UU Contra Contra Contra t u v a Source #

($<) :: UU Contra Contra Contra t u v b -> b -> UU Contra Contra Contra t u v a Source #

full :: UU Contra Contra Contra t u v () -> UU Contra Contra Contra t u v a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UU Contra Contra Contra t u v (u0 (v0 b)) -> UU Contra Contra Contra t u v (u0 (v0 a)) Source #

(>&<) :: UU Contra Contra Contra t u v b -> (a -> b) -> UU Contra Contra Contra t u v a Source #

(Covariant t, Covariant u, Covariant v, Contravariant w) => Contravariant (UUU Co Co Co Contra t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Co Co Co Contra t u v w b -> UUU Co Co Co Contra t u v w a Source #

contramap :: (a -> b) -> UUU Co Co Co Contra t u v w b -> UUU Co Co Co Contra t u v w a Source #

(>$) :: b -> UUU Co Co Co Contra t u v w b -> UUU Co Co Co Contra t u v w a Source #

($<) :: UUU Co Co Co Contra t u v w b -> b -> UUU Co Co Co Contra t u v w a Source #

full :: UUU Co Co Co Contra t u v w () -> UUU Co Co Co Contra t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Co Co Co Contra t u v w (u0 (v0 b)) -> UUU Co Co Co Contra t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Co Co Co Contra t u v w b -> (a -> b) -> UUU Co Co Co Contra t u v w a Source #

(Covariant t, Covariant u, Contravariant v, Covariant w) => Contravariant (UUU Co Co Contra Co t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Co Co Contra Co t u v w b -> UUU Co Co Contra Co t u v w a Source #

contramap :: (a -> b) -> UUU Co Co Contra Co t u v w b -> UUU Co Co Contra Co t u v w a Source #

(>$) :: b -> UUU Co Co Contra Co t u v w b -> UUU Co Co Contra Co t u v w a Source #

($<) :: UUU Co Co Contra Co t u v w b -> b -> UUU Co Co Contra Co t u v w a Source #

full :: UUU Co Co Contra Co t u v w () -> UUU Co Co Contra Co t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Co Co Contra Co t u v w (u0 (v0 b)) -> UUU Co Co Contra Co t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Co Co Contra Co t u v w b -> (a -> b) -> UUU Co Co Contra Co t u v w a Source #

(Covariant t, Contravariant u, Covariant v, Covariant w) => Contravariant (UUU Co Contra Co Co t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Co Contra Co Co t u v w b -> UUU Co Contra Co Co t u v w a Source #

contramap :: (a -> b) -> UUU Co Contra Co Co t u v w b -> UUU Co Contra Co Co t u v w a Source #

(>$) :: b -> UUU Co Contra Co Co t u v w b -> UUU Co Contra Co Co t u v w a Source #

($<) :: UUU Co Contra Co Co t u v w b -> b -> UUU Co Contra Co Co t u v w a Source #

full :: UUU Co Contra Co Co t u v w () -> UUU Co Contra Co Co t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Co Contra Co Co t u v w (u0 (v0 b)) -> UUU Co Contra Co Co t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Co Contra Co Co t u v w b -> (a -> b) -> UUU Co Contra Co Co t u v w a Source #

(Covariant t, Contravariant u, Contravariant v, Contravariant w) => Contravariant (UUU Co Contra Contra Contra t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Co Contra Contra Contra t u v w b -> UUU Co Contra Contra Contra t u v w a Source #

contramap :: (a -> b) -> UUU Co Contra Contra Contra t u v w b -> UUU Co Contra Contra Contra t u v w a Source #

(>$) :: b -> UUU Co Contra Contra Contra t u v w b -> UUU Co Contra Contra Contra t u v w a Source #

($<) :: UUU Co Contra Contra Contra t u v w b -> b -> UUU Co Contra Contra Contra t u v w a Source #

full :: UUU Co Contra Contra Contra t u v w () -> UUU Co Contra Contra Contra t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Co Contra Contra Contra t u v w (u0 (v0 b)) -> UUU Co Contra Contra Contra t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Co Contra Contra Contra t u v w b -> (a -> b) -> UUU Co Contra Contra Contra t u v w a Source #

(Contravariant t, Covariant u, Covariant v, Covariant w) => Contravariant (UUU Contra Co Co Co t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Contra Co Co Co t u v w b -> UUU Contra Co Co Co t u v w a Source #

contramap :: (a -> b) -> UUU Contra Co Co Co t u v w b -> UUU Contra Co Co Co t u v w a Source #

(>$) :: b -> UUU Contra Co Co Co t u v w b -> UUU Contra Co Co Co t u v w a Source #

($<) :: UUU Contra Co Co Co t u v w b -> b -> UUU Contra Co Co Co t u v w a Source #

full :: UUU Contra Co Co Co t u v w () -> UUU Contra Co Co Co t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Contra Co Co Co t u v w (u0 (v0 b)) -> UUU Contra Co Co Co t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Contra Co Co Co t u v w b -> (a -> b) -> UUU Contra Co Co Co t u v w a Source #

(Contravariant t, Covariant u, Contravariant v, Contravariant w) => Contravariant (UUU Contra Co Contra Contra t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Contra Co Contra Contra t u v w b -> UUU Contra Co Contra Contra t u v w a Source #

contramap :: (a -> b) -> UUU Contra Co Contra Contra t u v w b -> UUU Contra Co Contra Contra t u v w a Source #

(>$) :: b -> UUU Contra Co Contra Contra t u v w b -> UUU Contra Co Contra Contra t u v w a Source #

($<) :: UUU Contra Co Contra Contra t u v w b -> b -> UUU Contra Co Contra Contra t u v w a Source #

full :: UUU Contra Co Contra Contra t u v w () -> UUU Contra Co Contra Contra t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Contra Co Contra Contra t u v w (u0 (v0 b)) -> UUU Contra Co Contra Contra t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Contra Co Contra Contra t u v w b -> (a -> b) -> UUU Contra Co Contra Contra t u v w a Source #

(Contravariant t, Contravariant u, Covariant v, Contravariant w) => Contravariant (UUU Contra Contra Co Contra t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Contra Contra Co Contra t u v w b -> UUU Contra Contra Co Contra t u v w a Source #

contramap :: (a -> b) -> UUU Contra Contra Co Contra t u v w b -> UUU Contra Contra Co Contra t u v w a Source #

(>$) :: b -> UUU Contra Contra Co Contra t u v w b -> UUU Contra Contra Co Contra t u v w a Source #

($<) :: UUU Contra Contra Co Contra t u v w b -> b -> UUU Contra Contra Co Contra t u v w a Source #

full :: UUU Contra Contra Co Contra t u v w () -> UUU Contra Contra Co Contra t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Contra Contra Co Contra t u v w (u0 (v0 b)) -> UUU Contra Contra Co Contra t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Contra Contra Co Contra t u v w b -> (a -> b) -> UUU Contra Contra Co Contra t u v w a Source #

(Contravariant t, Contravariant u, Contravariant v, Covariant w) => Contravariant (UUU Contra Contra Contra Co t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(>$<) :: (a -> b) -> UUU Contra Contra Contra Co t u v w b -> UUU Contra Contra Contra Co t u v w a Source #

contramap :: (a -> b) -> UUU Contra Contra Contra Co t u v w b -> UUU Contra Contra Contra Co t u v w a Source #

(>$) :: b -> UUU Contra Contra Contra Co t u v w b -> UUU Contra Contra Contra Co t u v w a Source #

($<) :: UUU Contra Contra Contra Co t u v w b -> b -> UUU Contra Contra Contra Co t u v w a Source #

full :: UUU Contra Contra Contra Co t u v w () -> UUU Contra Contra Contra Co t u v w a Source #

(>$$$<) :: (Contravariant u0, Contravariant v0) => (a -> b) -> UUU Contra Contra Contra Co t u v w (u0 (v0 b)) -> UUU Contra Contra Contra Co t u v w (u0 (v0 a)) Source #

(>&<) :: UUU Contra Contra Contra Co t u v w b -> (a -> b) -> UUU Contra Contra Contra Co t u v w a Source #