code: @Override
      public C.Sequence<T> prepend(C.Sequence<? extends T> seq) {
          if (seq instanceof C.List) {
              return prependList((C.List<T>) seq);
          }
          if (isLazy()) {
              return new CompositeSeq<T>(seq, this);
          }
          return unLazyPrepend(seq);
      }
docs: {@inheritDoc}
  This method will NOT change the underline list
  
  @param seq the sequence to be prepended
  @return the prepended sequence