com.jnape.palatable.lambda.monoid.builtin

## Class MergeMaps<K,V>

- java.lang.Object
- - com.jnape.palatable.lambda.monoid.builtin.MergeMaps<K,V>

- Type Parameters:
    `K` - The key parameter type of the Map
    `V` - The value parameter type of the Map
  All Implemented Interfaces:
    Fn1<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>>, Fn2<Fn0<Map<K,V>>,Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>, Fn3<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>, Fn4<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>,Map<K,V>,Map<K,V>>, BiMonoidFactory<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>>, BiSemigroupFactory<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>>, Applicative<Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>, Cartesian<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<?,?>>, Cocartesian<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<?,?>>, Contravariant<Fn0<Map<K,V>>,Profunctor<?,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<?,?>>>, Functor<Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>, Profunctor<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<?,?>>, Monad<Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>, MonadReader<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>, MonadRec<Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>, MonadWriter<Fn0<Map<K,V>>,Fn1<Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>,Fn1<Fn0<Map<K,V>>,?>>

      public final class MergeMaps<K,V>
      extends Object
      implements BiMonoidFactory<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>>

  A `Monoid` instance formed by `Map.merge(Object, Object, BiFunction)` and a semigroup over `V`. Combines together multiple maps using the provided semigroup for key collisions.
  See Also:
    `Monoid`, `Map`

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Monoid<Map<K,V>>` | `checkedApply(Fn0<Map<K,V>> mFn0, Semigroup<V> semigroup)`
    `static <K,V> MergeMaps<K,V>` | `mergeMaps()`
    `static <K,V> MonoidFactory<Semigroup<V>,Map<K,V>>` | `mergeMaps(Fn0<Map<K,V>> mFn0)`
    `static <K,V> Monoid<Map<K,V>>` | `mergeMaps(Fn0<Map<K,V>> mFn0, Semigroup<V> semigroup)`
    `static <K,V> Fn1<Map<K,V>,Map<K,V>>` | `mergeMaps(Fn0<Map<K,V>> mFn0, Semigroup<V> semigroup, Map<K,V> x)`
    `static <K,V> Map<K,V>` | `mergeMaps(Fn0<Map<K,V>> mFn0, Semigroup<V> semigroup, Map<K,V> x, Map<K,V> y)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.specialized.BiMonoidFactory

      `apply, apply, checkedApply, flip, uncurry`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.specialized.BiSemigroupFactory

      `checkedApply`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.Fn4

      `apply, apply, checkedApply, compose, contraMap, diMapL, discardR, fn4, fn4, fn4, fn4, widen`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.Fn3

      `fn3, fn3, fn3`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.Fn2

      `curried, curry, fn2, fromBiFunction, toBiFunction`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functions.Fn1

      `andThen, carry, cartesian, censor, choose, cocartesian, diMap, diMapR, discardL, flatMap, fmap, fn1, fromFunction, lazyZip, listens, local, pure, pureFn1, thunk, toFunction, trampolineM, zip, zip`

    - ### Methods inherited from interface com.jnape.palatable.lambda.monad.Monad

      `join`

    - ### Methods inherited from interface com.jnape.palatable.lambda.functor.Functor

      `coerce`

- - ### Method Detail

    - #### checkedApply

          public Monoid<Map<K,V>> checkedApply(Fn0<Map<K,V>> mFn0,
                                               Semigroup<V> semigroup)

      Description copied from interface: `Fn3`
      Specified by:
        `checkedApply` in interface `Fn2<Fn0<Map<K,V>>,Semigroup<V>,Fn1<Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>>`
      Specified by:
        `checkedApply` in interface `Fn3<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>,Fn1<Map<K,V>,Map<K,V>>>`
      Specified by:
        `checkedApply` in interface `BiMonoidFactory<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>>`
      Specified by:
        `checkedApply` in interface `BiSemigroupFactory<Fn0<Map<K,V>>,Semigroup<V>,Map<K,V>>`

    - #### mergeMaps

          public static <K,V> MergeMaps<K,V> mergeMaps()

    - #### mergeMaps

          public static <K,V> MonoidFactory<Semigroup<V>,Map<K,V>> mergeMaps(Fn0<Map<K,V>> mFn0)

    - #### mergeMaps

          public static <K,V> Monoid<Map<K,V>> mergeMaps(Fn0<Map<K,V>> mFn0,
                                                         Semigroup<V> semigroup)

    - #### mergeMaps

          public static <K,V> Fn1<Map<K,V>,Map<K,V>> mergeMaps(Fn0<Map<K,V>> mFn0,
                                                               Semigroup<V> semigroup,
                                                               Map<K,V> x)

    - #### mergeMaps

          public static <K,V> Map<K,V> mergeMaps(Fn0<Map<K,V>> mFn0,
                                                 Semigroup<V> semigroup,
                                                 Map<K,V> x,
                                                 Map<K,V> y)