oops, I said: > loop(function (meta) ... but forgot the implementation of loop (though you probably guessed it): function loop (f) local function g(...) f(...) return g end return g end