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