function Signal.Wait(o)local u=coroutine.running()local A A=o:Connect(function(...)A:Disconnect()task.spawn(u,...)end)return coroutine.yield()end return Signal

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
