h$ K      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          None-025<=>?   None-025<=>?*+,-./0123456789:89:567234/01,-.+*None-025<=>?vwxyzyzwxvNone-025<=>?0{|}~~}{|None-025<=>?!!5455None-025<=>?f  None-025<=>?None-025<=>? monoidal-functorsA  .https://ncatlab.org/nlab/show/monoidal+functorMonoidal Functor is a Functor between two Monoidal Categories which preserves the monoidal structure. Eg., a homomorphism of monoidal categories.LawsAssociativity: combine (combine fx fy) fz O combine fx (combine fy fz) C C f (x t1 y) t1 fz combine fx (f (y t18 z)) C C f ((x t1 y) t1 z) O (f x t1 (y t1 z))Left Unitality: empty t1 f x O f empty t1 f x C C f x C f (empty t0 x)Right Unitality: f x t1 empty O f x t1 f empty C C f x C f (x t0 empty) None-025<=>?  None-025<=>? 3    !"#$%&'()*+,-./012345667889::;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 88966;|}~ | } ~       0monoidal-functors-0.1.1.0-LusaPW9ARfGBrpSDCcEojsControl.Category.TensorData.Bifunctor.BiInvariantData.Bifunctor.ModuleData.Bifunctor.Monoidal#Data.Bifunctor.Monoidal.SpecializedData.Functor.InvariantData.Functor.ModuleData.Functor.MonoidalData.Trifunctor.ModuleData.Trifunctor.Monoidal Cartesiandiagonalterminal SymmetricswapTensorlunitrunit AssociativeassocIsofwdbwd GBifunctorgbimapgrmapglmapdupmerge$fGBifunctorStarStarStarThese$fGBifunctor->->->These$fGBifunctor->->->Either$fGBifunctor->->->(,)$fGBifunctorOpOpOpt$fAssociativeThese->$fAssociativeEither->$fAssociative(,)->$fAssociativetStar$fAssociativetOp$fTensorTheseVoid->$fTensorEitherVoid->$fTensor(,)()->$fTensortiStar $fTensortiOp$fSymmetricThese->$fSymmetricEither->$fSymmetric(,)->$fSymmetrictStar$fSymmetrictOp$fCartesianEitherVoidOp$fCartesian(,)()-> Coercible2 Coercible1 FromFunctor runFunctor FromContra runContra FromBifunctorrunBiFromProfunctorrunPro BiInvariantbiinvmapbiinvIso$fBiInvariantFromProfunctor$fBiInvariantFromBifunctor$fContravariantFromContra$fFunctorFromFunctor$fBiInvariantWrappedBifunctor$fBiInvariantThese$fBiInvariantTannen$fBiInvariantSum$fBiInvariantProduct$fBiInvariantK1$fBiInvariantJoker$fBiInvariantFlip$fBiInvariantEither$fBiInvariantConst$fBiInvariantClown$fBiInvariantBiff$fBiInvariantBiap$fBiInvariantArg$fBiInvariant(,)$fBiInvariant(,,,,,,)$fBiInvariant(,,,,,)$fBiInvariant(,,,,)$fBiInvariant(,,,)$fBiInvariant(,,)$fBiInvariantYoneda$fBiInvariantWrappedArrow$fBiInvariantTannen0$fBiInvariantTambaraSum$fBiInvariantTambara$fBiInvariantTagged$fBiInvariantSum0$fBiInvariantStar$fBiInvariantRift$fBiInvariantRan$fBiInvariantProduct0$fBiInvariantProcompose$fBiInvariantPastroSum$fBiInvariantPastro$fBiInvariantKleisli$fBiInvariantJoker0$fBiInvariantFreeTraversing$fBiInvariantFreeMapping$fBiInvariantForget$fBiInvariantEnvironment$fBiInvariantCoyoneda$fBiInvariantCotambaraSum$fBiInvariantCotambara$fBiInvariantCostar$fBiInvariantCopastroSum$fBiInvariantCopastro$fBiInvariantCokleisli$fBiInvariantCofreeTraversing$fBiInvariantCofreeMapping$fBiInvariantCodensity$fBiInvariantClown0$fBiInvariantClosure$fBiInvariantCayley$fBiInvariantBiff0$fBiInvariant->Bimodule RightModule rstrength LeftModule lstrengthStrongCategoryMonoidalUnital introduce Semigroupalcombine!$fSemigroupal->(,)Either(,)Forget'$fSemigroupal->EitherEitherEitherForget$$fSemigroupal->EitherEither(,)Forget$fSemigroupal->(,)(,)(,)Forget$fSemigroupal->(,)Either(,)Star%$fSemigroupal->EitherEitherEitherStar"$fSemigroupal->EitherEither(,)Star$fSemigroupal->(,)(,)(,)Star#$fSemigroupal->EitherEither(,)Clown$fSemigroupal->(,)(,)(,)Clown&$fSemigroupal->EitherEitherEitherJoker#$fSemigroupal->EitherEither(,)Joker$fSemigroupal->(,)(,)(,)Joker $fSemigroupal->EitherEither(,)->$fSemigroupal->(,)(,)(,)-> $fSemigroupal->These(,)(,)Either!$fSemigroupal->Either(,)(,)Either'$fSemigroupal->EitherEitherEitherEither$$fSemigroupal->EitherEitherEither(,)$fSemigroupal->(,)(,)(,)(,)$fSemigroupal->(,)EitherEitherp$fUnital->()Void()Star$fUnital->VoidVoidVoidStar$fUnital->VoidVoid()Star$fUnital->()()()Star$fUnital->VoidVoidVoidJoker$fUnital->VoidVoid()Joker$fUnital->()()()Joker$fUnital->VoidVoid()->$fUnital->VoidVoidVoid->$fUnital->()()()->$fUnital->Void()()Either$fUnital->VoidVoidVoidEither$fUnital->VoidVoidVoid(,)$fUnital->()()()(,)$$fMonoidal->(,)()EitherVoid(,)()Star.$fMonoidal->EitherVoidEitherVoidEitherVoidStar)$fMonoidal->EitherVoidEitherVoid(,)()Star$fMonoidal->(,)()(,)()(,)()Star/$fMonoidal->EitherVoidEitherVoidEitherVoidJoker*$fMonoidal->EitherVoidEitherVoid(,)()Joker $fMonoidal->(,)()(,)()(,)()Joker'$fMonoidal->EitherVoidEitherVoid(,)()->$fMonoidal->(,)()(,)()(,)()->%$fMonoidal->TheseVoid(,)()(,)()Either&$fMonoidal->EitherVoid(,)()(,)()Either0$fMonoidal->EitherVoidEitherVoidEitherVoidEither-$fMonoidal->EitherVoidEitherVoidEitherVoid(,)$fMonoidal->(,)()(,)()(,)()(,)&$fSemigroupal->(,)(,)(,)StrongCategory $fSemigroupoidTYPEStrongCategory)$fMonoidal->(,)()(,)()(,)()StrongCategory$fUnital->()()()StrongCategory$fFunctorStrongCategory$fApplicativeStrongCategory$fMonadStrongCategory$fProfunctorStrongCategory$fCategoryTYPEStrongCategorymux&&zipdemux||faninswitch&|uniondividesplice|&divergecontramapMaybezigzag ultrafirst ultrasecond ultraleft ultrarightcomuxundividecodemux partitioncoswitchunfaninunzipcospliceppureinitialpolymono InvariantinvmapinvIso$fInvariantFromFunctor$fInvariantFromContra$fInvariant(,,,)$fInvariant(,,)$fInvariant(,)$fInvariantProduct$fInvariantSum $fInvariantIO$fInvariantEither$fInvariantMaybe$fInvariantNonEmpty$fInvariantZipList $fInvariant[]$fInvariantCompose$fInvariantIdentity$fSemigroupal->Either(,)f$fSemigroupal->(,)(,)f$fUnital->Void()f$fUnital->()()f$fMonoidal->EitherVoid(,)()f$fMonoidal->(,)()(,)()f