code: @Nonnull
      public static <T extends AbstractPattern> List<T> toList(@Nonnull Iterable<? extends T> in) {
          List<T> out = new ArrayList<T>();
          for (T i : in)
              out.add(i);
          return out;
      }
docs: Copies the given {@link Iterable} into a new {@link List}.
  
  @param <T> The free parameter for the element type.
  @param in The Iterable to copy.
  @return A new, mutable {@link ArrayList}.