function Rx.startWith(D)assert(type(D)=="\116\097\098\108\101","\066\097\100 \118\097\108\117\101\115")return function(q)assert(Observable.isObservable(q),"\066\097\100 \111\098\115\101\114\118\097\098\108\101")return Observable.new(function(u)for D,q in pairs(D)do u:Fire(q)end return q:Subscribe(u:GetFireFailComplete())end)end end

function Rx.startWith(values)
	assert(type(values) == "table", "Bad values")

	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			for _, item in pairs(values) do
				sub:Fire(item)
			end

			return source:Subscribe(sub:GetFireFailComplete())
		end)
	end
end
