code: public static <I> DFACacheOracle<I> createTreePCCacheOracle(Alphabet<I> alphabet,
                                                                  MembershipOracle<I, Boolean> delegate) {
          return new DFACacheOracle<>(new IncrementalPCDFATreeBuilder<>(alphabet), delegate);
      }
docs: Creates a prefix-closed cache oracle for a DFA learning setup, using a tree for internal cache organization.
  
  @param alphabet
  the alphabet containing the symbols of possible queries
  @param delegate
  the oracle to delegate queries to, in case of a cache-miss.
  @param <I>
  input symbol type
  
  @return the cached {@link DFACacheOracle}.
  
  @see IncrementalPCDFATreeBuilder