`world` must be a parameter of your internal "closure".
Either you use `{.closure.}` and when the compiler sees that `world` is capture
from the external context it will allocate a copy on the heap.
Or you use `{.nimcall.}` or `{.cdecl.}` and all the values captured must have a
infinite lifetime (i.e. be globals) but in your case you are trying to capture
`let world = world` which has the lifetime of the function.
