com.jnape.palatable.lambda.functions.specialized

## Interface MonoidFactory<A,B>

- All Superinterfaces:
    Applicative<Fn1<B,Fn1<B,B>>,Fn1<A,?>>, Cartesian<A,Fn1<B,Fn1<B,B>>,Fn1<?,?>>, Cocartesian<A,Fn1<B,Fn1<B,B>>,Fn1<?,?>>, Contravariant<A,Profunctor<?,Fn1<B,Fn1<B,B>>,Fn1<?,?>>>, Fn1<A,Fn1<B,Fn1<B,B>>>, Fn2<A,B,Fn1<B,B>>, Fn3<A,B,B,B>, Functor<Fn1<B,Fn1<B,B>>,Fn1<A,?>>, Monad<Fn1<B,Fn1<B,B>>,Fn1<A,?>>, MonadReader<A,Fn1<B,Fn1<B,B>>,Fn1<A,?>>, MonadRec<Fn1<B,Fn1<B,B>>,Fn1<A,?>>, MonadWriter<A,Fn1<B,Fn1<B,B>>,Fn1<A,?>>, Profunctor<A,Fn1<B,Fn1<B,B>>,Fn1<?,?>>, SemigroupFactory<A,B>
  All Known Implementing Classes:
    AddAll, Compose, EndoK, LeftAll, LeftAny, Present, RightAll, RightAny, RunAll

      public interface MonoidFactory<A,B>
      extends SemigroupFactory<A,B>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default Monoid<B>` | `apply(A a)` Partially apply this function by taking its first argument.
    `default B` | `apply(A a, B b, B c)` Invoke this function with the given arguments.
    `Monoid<B>` | `checkedApply(A a)` Invoke this function with the given argument, potentially throwing any `Throwable`.

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

      `checkedApply`

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

      `apply, checkedApply, compose, contraMap, diMapL, discardR, flip, fn3, fn3, fn3, uncurry, widen`

    - ### 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

          Monoid<B> checkedApply(A a)
                          throws Throwable

      Description copied from interface: `Fn2`
      Invoke this function with the given argument, potentially throwing any `Throwable`.
      Specified by:
        `checkedApply` in interface `Fn1<A,Fn1<B,Fn1<B,B>>>`
      Specified by:
        `checkedApply` in interface `Fn2<A,B,Fn1<B,B>>`
      Specified by:
        `checkedApply` in interface `SemigroupFactory<A,B>`
      Parameters:
        `a` - the argument
      Returns:
        the result of the function application
      Throws:
        `Throwable` - anything possibly thrown by the function

    - #### apply

          default B apply(A a,
                          B b,
                          B c)

      Description copied from interface: `Fn3`
      Invoke this function with the given arguments.
      Specified by:
        `apply` in interface `Fn3<A,B,B,B>`
      Parameters:
        `a` - the first argument
        `b` - the second argument
        `c` - the third argument
      Returns:
        the result of the function application

    - #### apply

          default Monoid<B> apply(A a)

      Description copied from interface: `Fn3`
      Partially apply this function by taking its first argument.
      Specified by:
        `apply` in interface `Fn1<A,Fn1<B,Fn1<B,B>>>`
      Specified by:
        `apply` in interface `Fn2<A,B,Fn1<B,B>>`
      Specified by:
        `apply` in interface `Fn3<A,B,B,B>`
      Specified by:
        `apply` in interface `SemigroupFactory<A,B>`
      Parameters:
        `a` - the first argument
      Returns:
        an `Fn2`<B, C, D>