function Rx.startFrom(E)assert(type(E)=="\102\117\110\099\116\105\111\110","\066\097\100 \099\097\108\108\098\097\099\107")return function(u)assert(Observable.isObservable(u),"\066\097\100 \111\098\115\101\114\118\097\098\108\101")return Observable.new(function(z)for E,u in pairs(E())do z:Fire(u)end return u:Subscribe(z:GetFireFailComplete())end)end end
--[=[
	Like start, but also from (list!)

	@param callback () -> { T }
	@return (source: Observable) -> Observable
]=]
function Rx.startFrom(callback)
	assert(type(callback) == "function", "Bad callback")
	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

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

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