function source.chain(src, f) return function() if not src then return nil end local chunk, err = src() if not chunk then src = nil return f(nil) else return f(chunk) end end end