// Helper type for item in an array or iterable // example: IterationValue export type IterationValue = T extends readonly unknown[] ? T[number] : T extends Iterable ? U : T extends Iterator ? U : never; export function map_iterable( value: Iterable | Iterator, fn: (item: T, index: number, is_last: boolean) => U, tail?: (() => U | U[]) | null, empty?: () => U | U[], ): U[];