pandora-0.4.6: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Pattern.Functor.Divariant

Synopsis

Documentation

class (forall i. Contravariant left target (Flip v i), forall i. Covariant right target (v i)) => Divariant left right target v where Source #

When providing a new instance, you should ensure it satisfies:
* Identity: identity >-> identity ≡ identity
* Interpreted: f . g >-> h . i ≡ g >-> h . f >-> i

Methods

(>->) :: left a b -> right c d -> target (v b c) (v a d) infixl 4 Source #

Instances

Instances details
Divariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Imprint Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

(>->) :: (a -> b) -> (c -> d) -> Imprint b c -> Imprint a d Source #

Divariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Environment Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Environment

Methods

(>->) :: (a -> b) -> (c -> d) -> Environment b c -> Environment a d Source #

Divariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Exponential

Methods

(>->) :: (a -> b) -> (c -> d) -> (b -> c) -> (a -> d) Source #