function Rx.unpacked(V)assert(Observable.isObservable(V),"\066\097\100 \111\098\115\101\114\118\097\098\108\101")return Observable.new(function(K)return V:Subscribe(function(V)if type(V)=="\116\097\098\108\101"then K:Fire(unpack(V))else warn(("\091\082\120\046\117\110\112\097\099\107\101\100\093 - \079\098\115\101\114\118\097\098\108\101 \100\105\100\110\'\116 \114\101\116\117\114\110 \097 \116\097\098\108\101 \103\111\116 \116\121\112\101 \037\113"):format(type(V)))end end,K:GetFailComplete())end)end

function Rx.unpacked(observable)
	assert(Observable.isObservable(observable), "Bad observable")

	return Observable.new(function(sub)
		return observable:Subscribe(function(value)
			if type(value) == "table" then
				sub:Fire(unpack(value))
			else
				warn(("[Rx.unpacked] - Observable didn't return a table got type %q")
					:format(type(value)))
			end
		end, sub:GetFailComplete())
	end)
end
