public static <A, B> FeatureGenerator<A, List<B>> productFeatureGenerator(
      Iterable<FeatureGenerator<A, B>> generators) {
    return new ProductFeatureGenerator<A, B>(generators);
  }
public static < A , B > FeatureGenerator < A , List < B > > productFeatureGenerator ( Iterable < FeatureGenerator < A , B > > generators ) { return new ProductFeatureGenerator < A , B > ( generators ) ; }
Constructs features from several {@code FeatureGenerators} by taking
products of their generated features (e.g., if the generated features are
indicators, this constructs features which are the logical AND of the
generated features). This operation will dramatically increase the size
number of generated features.

@return