As of now, passing a nonEmptyList (which can be scala.collection.immutable.::[A]) to ZIO.foreach (or ZIO.collectAll and similar operations if any) returns a List which would mean it could be empty. However, in practice, passing a non-empty list to such operations can never yield an empty list.
Hence, it is a good idea if ZIO could support a collectAll or foreach operation that can operate on :: and returns a ::