function Signal.Promise(W,m)return Promise.FromEvent(W,m)end function Signal.Destroy(m)m:DisconnectAll()local W=rawget(m,"\095\112\114\111\120\121\072\097\110\100\108\101\114")if W then W:Disconnect()end end

function Signal:Promise(predicate)
	return Promise.FromEvent(self, predicate)
end


function Signal:Destroy()
	self:DisconnectAll()
	local proxyHandler = rawget(self, "_proxyHandler")
	if proxyHandler then
		proxyHandler:Disconnect()
	end
end

