code: @Nonnull
      public static <I> Word<I> fromList(List<? extends I> symbolList) {
          int siz = symbolList.size();
          if (siz == 0) {
              return epsilon();
          }
          if (siz == 1) {
              return Word.fromLetter(symbolList.get(0));
          }
          return new SharedWord<>(symbolList);
      }
docs: Creates a word from a list of symbols.
  
  @param symbolList
  the list of symbols
  
  @return the resulting word