com.jnape.palatable.lambda.functions.builtin.fn2

## Class Partition<A,B,C>

- java.lang.Object
- - com.jnape.palatable.lambda.functions.builtin.fn2.Partition<A,B,C>

- Type Parameters:
    `A` - A type contravariant to the input Iterable element type
    `B` - The output left Iterable element type, as well as the CoProduct2 A type
    `C` - The output right Iterable element type, as well as the CoProduct2 B type
  All Implemented Interfaces:
    Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>>, Fn2<Fn1<? super A,? extends CoProduct2<B,C,?>>,Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>, Applicative<Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>, Cartesian<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<?,?>>, Cocartesian<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<?,?>>, Contravariant<Fn1<? super A,? extends CoProduct2<B,C,?>>,Profunctor<?,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<?,?>>>, Functor<Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>, Profunctor<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<?,?>>, Monad<Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>, MonadReader<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>, MonadRec<Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>, MonadWriter<Fn1<? super A,? extends CoProduct2<B,C,?>>,Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>,Fn1<Fn1<? super A,? extends CoProduct2<B,C,?>>,?>>

      public final class Partition<A,B,C>
      extends Object
      implements Fn2<Fn1<? super A,? extends CoProduct2<B,C,?>>,Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>

  Given an `Iterable<A>` `as` and a disjoint mapping function `a -> CoProduct2<A, B>`, return a `Tuple2` over the lazily unwrapped left `A` and right `B` values in the first and second slots, respectively. Note that while the tuple must be constructed eagerly, the left and right iterables contained therein are both lazy, so comprehension over infinite iterables is supported.
  See Also:
    `CoProduct2`

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Tuple2<Iterable<B>,Iterable<C>>` | `checkedApply(Fn1<? super A,? extends CoProduct2<B,C,?>> function, Iterable<A> as)`
    `static <A,B,C> Partition<A,B,C>` | `partition()`
    `static <A,B,C> Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>` | `partition(Fn1<? super A,? extends CoProduct2<B,C,?>> function)`
    `static <A,B,C> Tuple2<Iterable<B>,Iterable<C>>` | `partition(Fn1<? super A,? extends CoProduct2<B,C,?>> function, Iterable<A> as)`

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

      `apply, apply, checkedApply, compose, contraMap, curried, curry, diMapL, discardR, flip, fn2, fromBiFunction, toBiFunction, uncurry, widen`

    - ### 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 Tuple2<Iterable<B>,Iterable<C>> checkedApply(Fn1<? super A,? extends CoProduct2<B,C,?>> function,
                                                              Iterable<A> as)

      Specified by:
        `checkedApply` in interface `Fn2<Fn1<? super A,? extends CoProduct2<B,C,?>>,Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>>`

    - #### partition

          public static <A,B,C> Partition<A,B,C> partition()

    - #### partition

          public static <A,B,C> Fn1<Iterable<A>,Tuple2<Iterable<B>,Iterable<C>>> partition(Fn1<? super A,? extends CoProduct2<B,C,?>> function)

    - #### partition

          public static <A,B,C> Tuple2<Iterable<B>,Iterable<C>> partition(Fn1<? super A,? extends CoProduct2<B,C,?>> function,
                                                                          Iterable<A> as)