Right now a closure is a function pointer and another pointer to store any possible captures. This implies that the closure must be used within another function context.
Let's say you have a function that operates on a type in an object oriented manner.
proc MyMethod(this: var MyObject, a: int, b: string)
In this case the function is not inside another one. However, if we could reuse the context pointer in the closure to become the pointer to the "class", MyObject in the example above. Is there any way you can hack the closure to support this? Also how would you then call the closure with arbitrary object type?
The wise man from the east who gives two contradictory opinions and then hits you with a stick, it's Araq right??? ;-)
just kidding folks