code: @Override
      public E apply(Iterator<E> consumable) {
          dbc.precondition(consumable != null, "consuming a null iterator");
          dbc.precondition(consumable.hasNext(), "no element to consume");
          return consumable.next();
      }
docs: Consumes the first element from the passed iterator.
  
  @param consumable the iterator to be consumed
  @throws IllegalArgumentException if the passed iterator is empty
  @return the consumed value