fix return of List<T extends IsEnum<S>>