lazy lists with random tails. not easy without additional memoization