Generator utilities that bring array-like operations like map, filter, slice, some, every, and more to sync and async generators. Instead of producing arrays, these operations produce new generators.
Generators can be enhanced with new methods, or functional programming can be used to construct operators on generators.
Typeguard predicates and coercion functions are provided for iterators, iterables, and generators, both synchronous and asynchronous.
An enhanced implementation of the common range() function is provided, which allows mapping and filtering, and demonstrates the enhanced functionality.