I thought "closure" means allocating the stack onto the heap so you can return the delegate with its context intact.
I understood closure as capture of variables from external context. They are divided into upward closures and downward closures, the former needs heap allocation.