-record(stream, { head :: fun(() -> any()), tail :: fun(() -> gens@stream:stream(any())) }).