code: public static <S extends Sequence<C>, C extends Compound> List<SequencePair<S, C>> getAllPairsAlignments(
  			List<S> sequences, PairwiseSequenceAlignerType type, GapPenalty gapPenalty,
  			SubstitutionMatrix<C> subMatrix) {
  		return runPairwiseAligners(getAllPairsAligners(sequences, type, gapPenalty, subMatrix));
  	}
docs: Factory method which computes a sequence alignment for all {@link Sequence} pairs in the given {@link List}.
  This method runs the alignments in parallel by submitting all of the alignments to the shared thread pool of the
  {@link ConcurrencyTools} utility.
  
  @param <S> each {@link Sequence} of an alignment pair is of type S
  @param <C> each element of an {@link AlignedSequence} is a {@link Compound} of type C
  @param sequences the {@link List} of {@link Sequence}s to align
  @param type chosen type from list of pairwise sequence alignment routines
  @param gapPenalty the gap penalties used during alignment
  @param subMatrix the set of substitution scores used during alignment
  @return list of sequence alignment pairs