function BrioUtils.clone(O)assert(O,"\066\097\100 \098\114\105\111")if O:IsDead()then return Brio.DEAD end local V=Brio.new(O:GetValue());(V:ToMaid()):GiveTask((O:GetDiedSignal()):Connect(function()V:Kill()end))return V end
--[=[
	Clones a brio, such that it may be killed without affecting the original
	brio.

	@param brio Brio<T>
	@return Brio<T>
]=]
function BrioUtils.clone(brio)
	assert(brio, "Bad brio")

	if brio:IsDead() then
		return Brio.DEAD
	end

	local newBrio = Brio.new(brio:GetValue())

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

	return newBrio
end
