function BrioUtils.prepend(Z,...)if Z:IsDead()then return Brio.DEAD end local y=Z._values local F={}local g=table.pack(...)for Z=1,g.n,1 do F[Z]=g[Z]end for Z=1,y.n,1 do F[g.n+Z]=y[Z]end local N=Maid.new()local O=Brio.new(unpack(F,1,y.n+g.n))N:GiveTask((Z:GetDiedSignal()):Connect(function()O:Kill()end))N:GiveTask((O:GetDiedSignal()):Connect(function()N:DoCleaning()end))return O end
--[=[
	Makes a brio that is limited by the lifetime of its parent (but could be shorter)
	and has the new values given at the beginning of the result

	@since 3.6.0
	@param brio Brio<U>
	@param ... T
	@return Brio<T>
]=]
function BrioUtils.prepend(brio, ...)
	if brio:IsDead() then
		return Brio.DEAD
	end

	local values = brio._values
	local current = {}
	local otherValues = table.pack(...)
	for i = 1, otherValues.n do
		current[i] = otherValues[i]
	end
	for i = 1, values.n do
		current[otherValues.n + i] = values[i]
	end

	local maid = Maid.new()
	local newBrio = Brio.new(unpack(current, 1, values.n + otherValues.n))

	maid:GiveTask(brio:GetDiedSignal():Connect(function()
		newBrio:Kill()
	end))

	maid:GiveTask(newBrio:GetDiedSignal():Connect(function()
		maid:DoCleaning()
	end))

	return newBrio
end
