code: public static <I, S, A extends MutableDFA<S, I>> A and(DFA<?, I> dfa1,
                                                             DFA<?, I> dfa2,
                                                             Collection<? extends I> inputs,
                                                             A out) {
          return combine(dfa1, dfa2, inputs, out, AcceptanceCombiner.AND);
      }
docs: Calculates the conjunction ("and") of two DFA, and stores the result in a given mutable DFA.
  
  @param dfa1
  the first DFA
  @param dfa2
  the second DFA
  @param inputs
  the input symbols to consider
  @param out
  a mutable DFA for storing the result
  
  @return {@code out}, for convenience