The type of elements in the iterator or iterable
The original iterable if input is already iterable, otherwise a new iterable wrapping the iterator
// Using with an iterator
const arr = [1, 2, 3];
const iter = arr[Symbol.iterator]();
const iterable = G.lift(iter);
// Now you can use iterable multiple times
const result1 = Array.from(iterable); // [1, 2, 3]
// Using with an iterable (passes through)
const sameArr = G.lift(arr); // Just returns arr
Converts an iterator to an iterable (generator) or returns an iterable as is. This is the opposite of extracting an iterator from an iterable.