local promise = require'cqueues.promise' return function (list, fn) local n = #list local promises = {} for i = 1,n do promises[i] = promise.new(function() return fn(list[i]) end) end local out = {} for i = 1,n do out[i] = promises[i]:get() end return out end