code: public static <T> NonEmptyImmutableList<T> cons(@Nonnull T head, @Nonnull ImmutableList<T> tail) {
          return new NonEmptyImmutableList<>(head, tail);
      }
docs: Prepends "cons" an head element to a {@link ImmutableList}.
  
  @param head The head element to be prepended to the {@link ImmutableList}.
  @param tail The {@link ImmutableList} to be prepended to.
  @param <T>  The super type of both the element and the {@link ImmutableList}
  @return A {@link ImmutableList} that is comprised of the head then the tail.