úÎ(Š"„<      !"#$%&'()*+,-./0123456789:;portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred <=   <=portable provisionalEdward Kmett <ekmett@gmail.com> Safe-InferredGUsable default for foldMap, but only if you define bifoldMap1 yourself >?@ABCDE >?@ABCDEportable provisionalEdward Kmett <ekmett@gmail.com> Safe-InferredMinimal definition either  or  and  Formally, the class  represents a bifunctor  from Hask -> Hask. WIntuitively it is a bifunctor where both the first and second arguments are covariant. You can define a  by either defining  or by defining both   and . If you supply , you should ensure that:   F F "a FIf you supply  and  , ensure:     F "a F   F "a F ,If you supply both, you should also ensure:   f g "a  f G  gThese ensure by parametricity:    (f G g) (h G i) "a  f h G  g i   (f G g) "a  f G  g   (f G g) "a  f G  g *Map over both arguments at the same time.  f g "a  f G  g)Map covariantly over the first argument.  f "a  f F*Map covariantly over the second argument.  "a  F HIJKLMHIJKLMportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred!   a .> b "a N F <$> a <.> b "   a <. b "a N <$> a <.> b %Lift binary functions &Lift ternary functions  !"#$%&O  !"#$%& !"#$%& !"#$%&Oportable provisionalEdward Kmett <ekmett@gmail.com> Safe-InferredPQRSTUVWX'()*+,-./01YZ[\]^_` '()*+,-./01 '()*+,-./01PQRSTUVWX'()*+,-./01YZ[\]^_`portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred2345ab234523452345abportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred6Make a c over the first argument of a . 678defghijkl678678 678defghijklportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred9Make a c over the second argument of a . 9:;mnopqrstu9:;9:; 9:;mnopqrstuv      !"#$%&'()*+,-./0123456789:;<=>??@ABCDEFFGHIJKLMNOMNPQRSTUVMNWXYYZ[[\]]^_`abcdefghMNijklmnopqrstuvwxyz{|bifunctors-3.0.4Data.BifoldableData.Semigroup.BifoldableData.BifunctorData.Bifunctor.ApplyData.BitraversableData.Semigroup.BitraversableData.Bifunctor.FlipData.Bifunctor.Wrapped Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldrMbifoldl'bifoldlM bitraverse_bifor_bimapM_biforM_ bisequenceA_ bisequence_biListbiconcat biconcatMapbianybiall Bifoldable1bifold1 bifoldMap1 bitraverse1_bifor1_ bisequenceA1_bifoldMapDefault1 BifunctorbimapfirstsecondBiapply<<.>>.>><<.<<$>><<..>>bilift2bilift3 Bitraversable bitraverse bisequenceAbimapM bisequencebiforbiforM bimapAccumL bimapAccumR bimapDefaultbifoldMapDefaultBitraversable1 bitraverse1 bisequence1bifoldMap1DefaultFliprunFlipWrappedBifunctor WrapBifunctorunwrapBifunctor$fBifoldableEither$fBifoldable(,)ActgetActignore $fFunctorAct$fSemigroupAct$fBifoldable1(,)$fBifoldable1EitherbaseGHC.Baseid.$fBifunctorConst$fBifunctorEither$fBifunctor(,,,,)$fBifunctor(,,,)$fBifunctor(,,)$fBifunctor(,)const $fBiapply(,)IdgetIdStateR runStateRStateL runStateL$fApplicativeId $fFunctorId$fApplicativeStateR$fFunctorStateR$fApplicativeStateL$fFunctorStateL$fBitraversableEither$fBitraversable(,)$fBitraversable1(,)$fBitraversable1EitherFunctor$fBitraversable1Flip$fBifoldable1Flip$fTraversableFlip$fBitraversableFlip$fFoldableFlip$fBifoldableFlip $fBiapplyFlip $fFunctorFlip$fBifunctorFlip $fBitraversable1WrappedBifunctor$fBifoldable1WrappedBifunctor$fBitraversableWrappedBifunctor$fTraversableWrappedBifunctor$fBifoldableWrappedBifunctor$fFoldableWrappedBifunctor$fBiapplyWrappedBifunctor$fFunctorWrappedBifunctor$fBifunctorWrappedBifunctor