code: public static <E> Iterator<List<E>> unchain(int channelSize, Iterable<E> iterable) {
          dbc.precondition(iterable != null, "cannot unchain a null iterable");
          final Supplier<List<E>> channelFactory = Compositions.compose(new Vary<ArrayList<E>, List<E>>(), new ArrayListFactory<E>());
          return new UnchainIterator<List<E>, E>(channelSize, iterable.iterator(), channelFactory);
      }
docs: Demultiplexes elements from the source iterable into an iterator of channels.
  <code>
  unchain(2, [1,2,3,4,5]) -> [[1,2],[3,4],[5]]
  </code>
  
  @param <E> the element type
  @param channelSize maximum size of the channel
  @param iterable the source iterable
  @return an iterator of channels