function Signal.Once(l,M)local v v=l:Connect(function(...)if v._connected then v:Disconnect()end M(...)end)return v end Signal.Destroy=Signal.DisconnectAll

function Signal:Once(fn)
	local cn;
	cn = self:Connect(function(...)
		if cn._connected then
			cn:Disconnect()
		end
		fn(...)
	end)
	return cn
end

Signal.Destroy = Signal.DisconnectAll
