úÎßp6      !"#$%&'()*+,-./012345portable provisionalEdward Kmett <ekmett@gmail.com>    portable provisionalEdward Kmett <ekmett@gmail.com> 6789GUsable default for foldMap, but only if you define bifoldMap1 yourself portable provisionalEdward Kmett <ekmett@gmail.com>Minimal definition either  or  and  portable provisionalEdward Kmett <ekmett@gmail.com>)A strong lax semi-monoidal endofunctor.  This is equivalent to an  Applicative without pure. Laws: B associative composition: (.) <$> u <.> v <.> w = u <.> (v <.> w) !a .> b = const id  $ a  . b "a  . b = const <$ a  . b #$%3Lift a binary function into a comonad with zipping &4Lift a ternary function into a comonad with zipping  !"#$%& !"#$%& !" !"#$%&portable provisionalEdward Kmett <ekmett@gmail.com>:;<=>?@AB'()*+,-./01 '()*+,-./01 '()*+,-./01 '()*+()*+,-./01portable provisionalEdward Kmett <ekmett@gmail.com>234523452345234345C      !"#$%&'()*+,-./0123456789:;<==>?@@ABBCDDEFbifunctors-0.1.2Data.BifoldableData.Semigroup.BifoldableData.BifunctorData.Bifunctor.ApplyData.BitraversableData.Semigroup.Bitraversable 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 bisequence1bifoldMap1DefaultActgetActignoreIdgetIdStateR runStateRStateL runStateL