>>2
Generational stop-and-copy garbage collection could achieve something like a random access list. If, after copying, elements are contiguous, then one could use pointer offsets to access the nth element. You couldn't instantiate a random access list but in the background a list could turn into a vector if it was never mutated. If it was around for a while an old list would turn into a vector.