Interlisp uses the "spaghetti stack", an access and control mechanism more general than a linear stack. Control constructs such as generators, coroutines, and possibilities lists (interfaces between data producers and consumers) are applications of the spaghetti stack.