śĪ!xp[      !"#$%&'()*+,- . / 0 1 2 3 4 5 6 7 8 9 : ; < =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒSafe+,-;=>?AFPQSTUV5morphisms-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+,-;=>?AFPQSTUVnmorphisms-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+,-;=>?AFPQSTUV•   0 000Safe+,-;=>?AFPQSTUV!Ōmorphisms-functors rWhen providing a new instance, you should ensure it satisfies the one law: * Interchange: t >>= f = join (f <$> t)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 extendmorphisms-functors$Merge effects/contexts, the dual of  duplicatemorphisms-functors!Left-to-right Kleisli compositionmorphisms-functors!Right-to-left Kleisli composition1111Safe+,-;=>?AFPQSTUV+Ę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+,-;=>?AFPQSTUV1» 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+,-;=>?AFPQSTUV8’$morphisms-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 f%morphisms-functorsLeft adjunction&morphisms-functorsRight adjunction#$%&'($%&'(#Safe+,-;=>?AFPQSTUV?D)morphisms-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 f*morphisms-functorsInfix version of ++morphisms-functorsPrefix version of *,morphisms-functors The dual of sequence)*+,)*+, Safe+,-;=>?AFPQSTUV@"-.-. Safe+,-;=>?AFPQSTUVJs/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 . duplicate0morphisms-functorsInfix and flipped version of 2, the dual of >>=1morphisms-functorsFlipped version of >>=, the dual of =<<2morphisms-functorsPrefix and flipped version of 0, the dual of bind3morphisms-functors&Clone existing structure, the dual of join4morphisms-functors#Right-to-left Cokleisli composition5morphisms-functors#Left-to-right Cokleisli composition/012345/01234501114151 Safe+,-;=>?AFPQSTUVKµ6767 Safe+,-;=>?AFPQSTUVQ¹8morphisms-functors ]Let f :: (Pointable t, Bindable t) => t a -> b Let g :: (Pointable t, Bindable t) => t a -> b ŪWhen using this constraint, 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)88 Safe+,-;=>?AFPQSTUVWé9morphisms-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 :9<:;9<:;:4<4Safe+,-;=>?AFPQSTUVXķ=>=>Safe+,-;=>?AFPQSTUV_]?morphisms-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 using this constraint, 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) >>= g??Safe+,-;=>?AFPQSTUVhƒ@morphisms-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 yAmorphisms-functorsInfix version of BBmorphisms-functorsPrefix version of ACmorphisms-functors The dual of  distribute@ACB@ACBSafe+,-;=>?AFPQSTUViaDEEDSafe+,-;=>?AFPQSTUVj/F   !"#$%&'()*+,-./0123456789<:;=>?@ACBDESafe+,-;=>?AFPQSTUVlFGHFGHSafe+,-;=>?AFPQSTUVlŪSTUSTUSafe+,-;=>?AFPQSTUVm±defdefSafe+,-;=>?AFPQSTUVn‡}~}~Safe+,-;=>?AFPQSTUVoU‚ƒ‚ƒSafe+,-;=>?AFPQSTUVp# FGHSTUdef}~‚ƒ !"#$%&'()*+,-./0123456789:;<=>?@ABCDE F G H I J K L M N O P Q R S T UVWXYZ[\]^__`abcdefghijkklmnopqrstuvwxyz{{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’““”•–——˜™š›œžŸ ”/morphisms-functors-0.1.4-LeAxHoTVAE5A4q7LWevvoMControl.Functor.ContravariantControl.Functor.CovariantControl.Functor.CompositionControl.Functor.BindableControl.Functor.ApplicativeControl.Functor.AlternativeControl.Functor.AdjointControl.Functor.DistributiveControl.Functor.ExclusiveControl.Functor.ExtendableControl.Functor.ExtractableControl.Functor.ComonadControl.Functor.InvariantControl.Functor.PointableControl.Functor.MonadControl.Functor.TraversableControl.Transformation.NaturalData.Functor.Composition.TData.Functor.Composition.TTData.Functor.Composition.TTTData.Functor.ConstantData.Functor.IdentityControl.Functor Data.Functor Contravariant>$< contramap>$$<full Covariant<$>comap<$$>void%.%%.::.%:.:VariantCoContraBindable>>==<<bindjoin>=><=< Applicative<*>apply*><*forever Alternative<+>alter-|Adjointphipsietaepsilon Distributive>>-collect distribute Exclusive exclusive Extendable=>><<=extend duplicate=<==>= ExtractableextractComonad Invariant<$<invmap>$> PointablepointMonad Traversable->>traversesequence~>NaturalTt$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$fTraversableConstant$fContravariantConstant$fCovariantConstantIdentity$fAdjointIdentityIdentity$fExtendableIdentity$fBindableIdentity$fDistributiveIdentity$fTraversableIdentity$fExtractableIdentity$fPointableIdentity$fApplicativeIdentity$fCovariantIdentity