!        ! " # $ % & ' ( )*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!!!!!""""""""###########$$$$$$$$%%&&&&&&&&&&&&&&&&(Safe+,-;=>?CFPQSTUVmorphisms-functors When providing a new instance, you should ensure it satisfies the two laws: * Identity morphism: contramap identity "a identity * Composition of morphisms: contramap f . contramap g "a contramap (g . f)morphisms-functorsInfix version of morphisms-functorsPrefix version of morphisms-functors7Replace all locations in the output with the same valuemorphisms-functorsFlipped version of morphisms-functorsFill the input of evaluation444Safe+,-;=>?CFPQSTUVmorphisms-functors When providing a new instance, you should ensure it satisfies the two laws: * Identity morphism: comap identity "a identity * Composition of morphisms: comap (f . g) "a comap f . comap gmorphisms-functorsInfix version of morphisms-functorsPrefix version of  morphisms-functors6Replace all locations in the input with the same value morphisms-functorsFlipped version of  morphisms-functors!Discards the result of evaluation    4 4 4Safe+,-;=>?CFPQSTUV  morphisms-functors When providing a new instance, you should ensure it satisfies the two laws: * Associativity of <+>: (x <+> y) <+> z "a x <+> (y <+> z) * Left-distributes <$> over <+>: f <$> (x <+> y) "a (f <$> x) <+> (f <$> y) morphisms-functorsInfix version of morphisms-functorsPrefix version of     3Safe+,-;=>?CFPQSTUV*=morphisms-functors When providing a new instance, you should ensure it satisfies the three laws: * Composition: (.) <$> u <*> v <*> w "a u <*> (v <*> w) * Left interchange: x <*> (f <$> y) "a (. f) <$> x <*> y * Right interchange: f <$> (x <*> y) "a (f .) <$> x <*> ymorphisms-functorsInfix version of morphisms-functorsPrefix version of morphisms-functors<Sequence actions, discarding the value of the first argumentmorphisms-functors=Sequence actions, discarding the value of the second argumentmorphisms-functorsRepeat an action indefinitely444Safe+,-;=>?CFPQSTUV+TSafe+,-;=>?CFPQSTUV,Safe+,-;=>?CFPQSTUV,Safe+,-;=>?CFPQSTUV- Safe+,-;=>?CFPQSTUV.L Safe+,-;=>?CFPQSTUV4tmorphisms-functors When providing a new instance, you should ensure it satisfies the two laws: Identity morphisms: invmap identity identity = identity Composition of morphisms: invmap g j . invmap f h = invmap (g . f) (h . j) morphisms-functorsInfix version of !!morphisms-functorsPrefix version of  "morphisms-functorsFlipped version of  " !" ! 4"4 Safe+,-;=>?CFPQSTUV5h#$#$ Safe+,-;=>?CFPQSTUV6&%&%& Safe+,-;=>?CFPQSTUV6'('(Safe+,-;=>?CFPQSTUV7)*)*Safe+,-;=>?CFPQSTUV8`+,+,Safe+,-;=>?CFPQSTUV9-.-.Safe+,-;=>?CFPQSTUV9/0/0Safe+,-;=>?CFPQSTUV:1212Safe+,-;=>?CFPQSTUV;X3456456330Safe+,-;=>?CFPQSTUVD7morphisms-functors gLet f :: (Applicative t, Applicative g) => t a -> u a Let p :: (Pointable t, Pointable g) => t a -> u a  When providing a new instance, you should ensure it satisfies the four laws: * Naturality of traversing: g . traverse f "a traverse (g . f) * Naturality of sequencing: f . sequence = sequence . comap f * Preserving point: p (point x) "a point x * Preserving apply: f (x <*> y) "a f x <*> f y8morphisms-functorsInfix version of 99morphisms-functorsPrefix version of 8:morphisms-functors The dual of  distribute789:789:Safe+,-;=>?CFPQSTUVN;morphisms-functors When providing a new instance, you should ensure it satisfies the three laws: * Duplication interchange: comap (comap f) . duplicate "a duplicate . comap f * Extension interchange: extend f "a comap f . duplicate<morphisms-functorsInfix and flipped version of >, the dual of >>==morphisms-functorsFlipped version of >>=, the dual of =<<>morphisms-functorsPrefix and flipped version of <, the dual of bind?morphisms-functors&Clone existing structure, the dual of join@morphisms-functors#Right-to-left Cokleisli compositionAmorphisms-functors#Left-to-right Cokleisli composition;<>=@A?;<>=@A?<1=1@1A1Safe+,-;=>?CFPQSTUVU^Bmorphisms-functors ]Let f :: (Pointable t, Bindable t) => t a -> b Let g :: (Pointable t, Bindable t) => t a -> b When providing a new instance, you should ensure it satisfies the three laws: * Left identity: extend extract "a identity * Right identity: extract . extend f "a f * Associativity: extend f . extend g "a extend (f . extend g)BBSafe+,-;=>?CFPQSTUV[Cmorphisms-functors %Let f :: Distributive g => (a -> g b) When providing a new instance, you should ensure it satisfies the two laws: * Identity morphism: distribute . distribute "a identity * Interchange collection: collect f "a distribute . comap fDmorphisms-functorsInfix version of EEmorphisms-functorsPrefix version of DFmorphisms-functors The dual of sequenceCDEFCDEFSafe+,-;=>?CFPQSTUVdGmorphisms-functors rWhen providing a new instance, you should ensure it satisfies the one law: * Interchange: t >>= f = join (f <$> t)Hmorphisms-functorsInfix and flipped version of J, the dual of =>>Imorphisms-functorsFlipped version of H, the dual of <<=Jmorphisms-functorsPrefix and flipped version of H, the dual of extendKmorphisms-functors$Merge effects/contexts, the dual of  duplicateLmorphisms-functors!Left-to-right Kleisli compositionMmorphisms-functors!Right-to-left Kleisli compositionGHKIJMLGHKIJMLH1I1L1M1Safe+,-;=>?CFPQSTUVkNmorphisms-functors Let f :: (Pointable t, Bindable t) => a -> t a Let g :: (Pointable t, Bindable t) => a -> t a Let h :: (Pointable t, Bindable t) => t a When providing a new instance, you should ensure it satisfies the three laws: * Left identity: point a >>= f "a f a * Right identity: h >>= point "a h * Associativity: h >>= (\x -> f x >>= g) "a (h >>= f) >>= gNNSafe+,-;=>?CFPQSTUVr'Pmorphisms-functors When providing a new instance, you should ensure it satisfies the four laws: * Left adjunction identity: phi counit "a identity * Right adjunction identity: psi unit "a identity * Left adjunction interchange: phi f "a comap f . eta * Right adjunction interchange: psi f "a epsilon . comap fQmorphisms-functorsLeft adjunctionRmorphisms-functorsRight adjunctionOPQRSTPQRSTO'Safe+,-;=>?CFPQSTUVsS  " !#$%&)*+,-./0123456789:;<>=@A?BCDEFGHKIJMLNOPQRSTSafe+,-;=>?CFPQSTUVtUVWXVWXUSafe+,-;=>?CFPQSTUVu[\]^\]^[Safe+,-;=>?CFPQSTUVvcdecdeSafe+,-;=>?CFPQSTUVwahijhijSafe+,-;=>?CFPQSTUVx'uvwuvw Safe+,-;=>?CFPQSTUVx!Safe+,-;=>?CFPQSTUVy"Safe+,-;=>?CFPQSTUVzq#Safe+,-;=>?CFPQSTUV{O$Safe+,-;=>?CFPQSTUV| 11%Safe+,-;=>?CFPQSTUV|&Safe+,-;=>?CFPQSTUV}(Safe+,-;=>?CFPQSTUV~}&UVWX[\]^cdehijuvw)*+,-./0123456789:;<=>?@ABCDE F G H I J K L M N O P QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !!!!!!""""""""###########$$$$$$$$%%&&&&&&&&&&&&&&&&/morphisms-functors-0.1.7-IIBH7D8n8ukE4m2ZcFL0zLControl.Functor.ContravariantControl.Functor.Covariant%Control.Functor.Covariant.Alternative%Control.Functor.Covariant.Applicative#Control.Functor.Covariant.Exclusive%Control.Functor.Covariant.Extractable#Control.Functor.Covariant.Pointable1Control.Functor.Covariant.Transformation.Liftable2Control.Functor.Covariant.Transformation.LowerableControl.Functor.Invariant+Control.Functor.Polyvariant.Bicontravariant'Control.Functor.Polyvariant.Bicovariant&Control.Functor.Polyvariant.Orpvariant&Control.Functor.Polyvariant.Provariant-Control.Functor.Polyvariant.Quadcontravariant)Control.Functor.Polyvariant.Quadcovariant,Control.Functor.Polyvariant.Tricontravariant(Control.Functor.Polyvariant.TricovariantControl.Variance1Control.Functor.Covariant.Composition.Traversable0Control.Functor.Covariant.Composition.Extendable-Control.Functor.Covariant.Composition.Comonad2Control.Functor.Covariant.Composition.Distributive.Control.Functor.Covariant.Composition.Bindable+Control.Functor.Covariant.Composition.Monad-Control.Functor.Covariant.Composition.AdjointData.Functor.Arrow.OppositeData.Functor.Arrow.StraightData.Functor.CodensityData.Functor.Composition.TData.Functor.Composition.TTData.Functor.Composition.TTTData.Functor.ConstantData.Functor.Extension.KanData.Functor.IdentityData.Functor.Product#Data.Functor.Transformation.NaturalData.Functor.YonedaControl.Functor Data.Functor Contravariant>$< contramap>$$<full Covariant<$>comap<$$>void Alternative<+>alter Applicative<*>apply*><*forever Exclusive exclusive Extractableextract PointablepointLiftablelift Lowerablelower Invariant<$<invmap>$>Bicontravariant bicontramap Bicovariantbicomap Orpvariantorpmap ProvariantpromapQuadcontravariant quadcontramap Quadcovariant quadcomapTricontravariant tricontramap Tricovarianttricomap:.:VariantCoContra Traversable->>traversesequence Extendable=>><<=extend duplicate=<==>=Comonad Distributive>>-collect distributeBindable>>==<<bindjoin>=><=<Monad-|Adjointphipsietaepsilon<--Oppositeopposite$fOrpvariantOpposite$fContravariantOpposite-->Straightstraight$fProvariantStraight$fApplicativeStraight$fPointableStraight$fCovariantStraight Codensity codensity$fPointableCodensity$fCovariantCodensityTt$fExtractableT $fPointableT $fExclusiveT$fAlternativeT$fApplicativeT $fCovariantT$fContravariantT$fContravariantT0 $fCovariantT0 $fAdjointTTTTtt$fExtractableTT $fPointableTT $fExclusiveTT$fAlternativeTT$fApplicativeTT$fContravariantTT $fCovariantTT$fCovariantTT0$fCovariantTT1$fContravariantTT0$fContravariantTT1$fContravariantTT2$fCovariantTT2 $fAdjointTTTTTTTttt$fExtractableTTT$fPointableTTT$fExclusiveTTT$fAlternativeTTT$fApplicativeTTT$fCovariantTTT$fContravariantTTT$fContravariantTTT0$fContravariantTTT1$fContravariantTTT2$fCovariantTTT0$fCovariantTTT1$fCovariantTTT2$fCovariantTTT3$fCovariantTTT4$fCovariantTTT5$fContravariantTTT3$fContravariantTTT4$fContravariantTTT5$fContravariantTTT6$fCovariantTTT6$fAdjointTTTTTTConstant$fBicovariantConstant$fTraversableConstant$fContravariantConstant$fCovariantConstantLanlanRanran$fCovariantRan$fContravariantLanIdentity$fAdjointIdentityIdentity$fExtendableIdentity$fBindableIdentity$fDistributiveIdentity$fTraversableIdentity$fExtractableIdentity$fPointableIdentity$fApplicativeIdentity$fCovariantIdentity:&:Product$fBicovariantProduct$fComonadProduct$fExtendableProduct$fExtractableProduct$fCovariantProduct~>NaturalYonedayoneda$fExtendableYoneda$fBindableYoneda$fAdjointYonedaYoneda$fDistributiveYoneda$fTraversableYoneda$fLowerableYoneda$fLiftableYoneda$fExtractableYoneda$fPointableYoneda$fExclusiveYoneda$fAlternativeYoneda$fApplicativeYoneda$fCovariantYoneda