code: public <K2 extends K, E2 extends E> BlockingListMaker<K2, E2> fetchElements(Retriever<K2, E2> retriever) {
          @SuppressWarnings("unchecked")
          BlockingListMaker<K2, E2> stricterThis = (BlockingListMaker<K2, E2>) this;
          stricterThis.setRetriever(retriever);
          return stricterThis;
      }
docs: Define the {@link Retriever} to use to retrieve elements on demand.