úÎŒp+      !"#$%&'()* Safe-Inferred +,+, Safe-Inferred -.   -.non-portable (flexible MPTCs) experimentalEdward Kmett <ekmett@gmail.com> Safe-Inferred /01234    /01234 Safe-Inferred <Used to map a more traditional bifunctor into a semifunctor RSemifunctors map objects to objects, and arrows to arrows preserving connectivity S as normal functors, but do not purport to preserve identity arrows. We apply them $ to semigroupoids, because those don''t even claim to offer identity arrows!  56789:;<=>?@AB#CDEFGHIJKLMNO   56789:;<=>?@AB MPTCs, GADTs experimentalEdward Kmett <ekmett@gmail.com> Safe-Inferred !"#$PQRSTUVWXY !"#$ !"#$ !"#$PQRSTUVWXY MPTCs, GADTs experimentalEdward Kmett <ekmett@gmail.com> Safe-Inferred%&'()*Z[\]^_`abc%&'()*&'()%*%&'()*Z[\]^_`abcd       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIGHJGHKGHLGHMNOPNOQNORNOSNOTNOUNOVNOVWXYZ[\]^_`abcdefghijksemigroupoid-extras-3.0.1Data.Semigroupoid.CoproductData.Semigroupoid.ProductData.Semigroupoid.ObData.SemifunctorData.Semifunctor.AssociativeData.Semifunctor.Braided CoproductRLdistributeDualCoproductfactorDualCoproductProductPairdistributeDualProductfactorDualProductObsemiidBiWrappedTraversable1WrapTraversable1unwrapTraversable1WrappedFunctor WrapFunctor unwrapFunctor Semifunctorsemimap# semibimap semifirst semisecondfirstsecondDisassociative disassociate Associative associatekleisliAssociatecokleisliAssociatekleisliDisassociatecokleisliDisassociate SymmetricBraidedbraid kleisliBraidcokleisliBraidswap$fGroupoidCoproduct$fSemigroupoidCoproduct$fGroupoidProduct$fSemigroupoidProduct $fOb(->)a$fObCokleislia $fObKleislia$fObCoproductR$fObCoproductL$fObProduct(,)fstPsndPleftright$fSemifunctorBiProductCokleisli$fSemifunctorBiProductKleisli$fSemifunctorBiProductKleisli0$fSemifunctorBiProduct(->)$fSemifunctorBiProduct(->)0$fSemifunctorfDualDual.$fSemifunctorWrappedTraversable1KleisliKleisli-$fSemifunctorWrappedFunctorCokleisliCokleisli)$fSemifunctorWrappedFunctorKleisliKleisli#$fSemifunctorWrappedFunctor(->)(->)baseControl.Category>>><<<.idCategorysemigroupoids-3.1Data.Semigroupoido SemigroupoidunwrapCategory WrapCategoryWrappedCategorygetSemiSemi$fDisassociativeCokleisliBi$fDisassociativeKleisliBi$fDisassociativeKleisliBi0$fDisassociative(->)Bi$fDisassociative(->)Bi0$fAssociativeCokleisliBi$fAssociativeKleisliBi$fAssociativeKleisliBi0$fAssociative(->)Bi$fAssociative(->)Bi0$fSymmetricCokleisliBi$fSymmetricKleisliBi$fSymmetricKleisliBi0$fSymmetric(->)Bi$fSymmetric(->)Bi0$fBraidedCokleisliBi$fBraidedKleisliBi$fBraidedKleisliBi0$fBraided(->)Bi$fBraided(->)Bi0