pandora-0.1.9: 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

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

Flipped infix version of contramap

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

Infix versions of contramap with various nesting levels

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

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

(>&&<) :: Contravariant u => ((t :.: u) >< a) -> (a -> b) -> (t :.: u) >< b Source #

Infix flipped versions of contramap with various nesting levels

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

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

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 #

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

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

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

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

(>&&<) :: Contravariant u => ((Predicate :.: u) >< a) -> (a -> b) -> (Predicate :.: u) >< b Source #

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

(>&&&&<) :: (Contravariant u, Contravariant v, Contravariant w) => ((Predicate :.: (u :.: (v :.: w))) >< a) -> (a -> b) -> (Predicate :.: (u :.: (v :.: w))) >< b 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 #

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

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

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

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

(>&&<) :: Contravariant u => ((Proxy :.: u) >< a) -> (a -> b) -> (Proxy :.: u) >< b Source #

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

(>&&&&<) :: (Contravariant u, Contravariant v, Contravariant w) => ((Proxy :.: (u :.: (v :.: w))) >< a) -> (a -> b) -> (Proxy :.: (u :.: (v :.: w))) >< b 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 #

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

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

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

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

(>&&<) :: Contravariant u => ((Constant a :.: u) >< a0) -> (a0 -> b) -> (Constant a :.: u) >< b Source #

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

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

Contravariant (Lan t u b) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.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 #

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

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

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

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

(>&&<) :: Contravariant u0 => ((Lan t u b :.: u0) >< a) -> (a -> b0) -> (Lan t u b :.: u0) >< b0 Source #

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

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

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

Defined in Pandora.Pattern.Junction.Schemes.TU

Methods

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

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

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

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

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

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

(>$$<) :: Contravariant u0 => (a -> b) -> ((TU Co Contra t u :.: u0) >< a) -> (TU Co Contra t u :.: u0) >< b Source #

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

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

(>&&<) :: Contravariant u0 => ((TU Co Contra t u :.: u0) >< a) -> (a -> b) -> (TU Co Contra t u :.: u0) >< b Source #

(>&&&<) :: (Contravariant u0, Contravariant v) => ((TU Co Contra t u :.: (u0 :.: v)) >< b) -> (a -> b) -> (TU Co Contra t u :.: (u0 :.: v)) >< a Source #

(>&&&&<) :: (Contravariant u0, Contravariant v, Contravariant w) => ((TU Co Contra t u :.: (u0 :.: (v :.: w))) >< a) -> (a -> b) -> (TU Co Contra t u :.: (u0 :.: (v :.: w))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TU

Methods

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

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

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

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

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

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

(>$$<) :: Contravariant u0 => (a -> b) -> ((TU Contra Co t u :.: u0) >< a) -> (TU Contra Co t u :.: u0) >< b Source #

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

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

(>&&<) :: Contravariant u0 => ((TU Contra Co t u :.: u0) >< a) -> (a -> b) -> (TU Contra Co t u :.: u0) >< b Source #

(>&&&<) :: (Contravariant u0, Contravariant v) => ((TU Contra Co t u :.: (u0 :.: v)) >< b) -> (a -> b) -> (TU Contra Co t u :.: (u0 :.: v)) >< a Source #

(>&&&&<) :: (Contravariant u0, Contravariant v, Contravariant w) => ((TU Contra Co t u :.: (u0 :.: (v :.: w))) >< a) -> (a -> b) -> (TU Contra Co t u :.: (u0 :.: (v :.: w))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUV

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUV Co Co Contra t u v :.: u0) >< a) -> (a -> b) -> (TUV Co Co Contra t u v :.: u0) >< b Source #

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

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

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

Defined in Pandora.Pattern.Junction.Schemes.TUV

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUV Co Contra Co t u v :.: u0) >< a) -> (a -> b) -> (TUV Co Contra Co t u v :.: u0) >< b Source #

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

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

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

Defined in Pandora.Pattern.Junction.Schemes.TUV

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUV Contra Co Co t u v :.: u0) >< a) -> (a -> b) -> (TUV Contra Co Co t u v :.: u0) >< b Source #

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

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

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

Defined in Pandora.Pattern.Junction.Schemes.TUV

Methods

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

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

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

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

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

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

(>$$<) :: Contravariant u0 => (a -> b) -> ((TUV Contra Contra Contra t u v :.: u0) >< a) -> (TUV Contra Contra Contra t u v :.: u0) >< b Source #

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

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

(>&&<) :: Contravariant u0 => ((TUV Contra Contra Contra t u v :.: u0) >< a) -> (a -> b) -> (TUV Contra Contra Contra t u v :.: u0) >< b Source #

(>&&&<) :: (Contravariant u0, Contravariant v0) => ((TUV Contra Contra Contra t u v :.: (u0 :.: v0)) >< b) -> (a -> b) -> (TUV Contra Contra Contra t u v :.: (u0 :.: v0)) >< a Source #

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w) => ((TUV Contra Contra Contra t u v :.: (u0 :.: (v0 :.: w))) >< a) -> (a -> b) -> (TUV Contra Contra Contra t u v :.: (u0 :.: (v0 :.: w))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Co Co Co Contra t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Co Co Co Contra t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Co Co Co Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Co Co Co Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Co Co Contra Co t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Co Co Contra Co t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Co Co Contra Co t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Co Co Contra Co t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Co Contra Co Co t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Co Contra Co Co t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Co Contra Co Co t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Co Contra Co Co t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Co Contra Contra Contra t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Co Contra Contra Contra t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Co Contra Contra Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Co Contra Contra Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Contra Co Co Co t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Contra Co Co Co t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Contra Co Co Co t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Contra Co Co Co t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Contra Co Contra Contra t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Contra Co Contra Contra t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Contra Co Contra Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Contra Co Contra Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Contra Contra Co Contra t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Contra Contra Co Contra t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Contra Contra Co Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Contra Contra Co Contra t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #

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

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

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

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

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

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

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

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

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

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

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

(>&&<) :: Contravariant u0 => ((TUVW Contra Contra Contra Co t u v w :.: u0) >< a) -> (a -> b) -> (TUVW Contra Contra Contra Co t u v w :.: u0) >< b Source #

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

(>&&&&<) :: (Contravariant u0, Contravariant v0, Contravariant w0) => ((TUVW Contra Contra Contra Co t u v w :.: (u0 :.: (v0 :.: w0))) >< a) -> (a -> b) -> (TUVW Contra Contra Contra Co t u v w :.: (u0 :.: (v0 :.: w0))) >< b Source #