function Signal.Wait(g)local e=coroutine.running()local V V=g:Connect(function(...)V:Disconnect()task.spawn(e,...)end)return coroutine.yield()end return Signal
-- Implement Signal:Wait() in terms of a temporary connection using
-- a Signal:Connect() which disconnects itself.
function Signal:Wait()
	local waitingCoroutine = coroutine.running()
	local cn
	cn = self:Connect(function(...)
		cn:Disconnect()
		task.spawn(waitingCoroutine, ...)
	end)
	return coroutine.yield()
end

return Signal
