return function()local K=require(script.Parent.Symbol)describe("\110\097\109\101\100",function()it("\115\104\111\117\108\100 \103\105\118\101 \097\110 \111\112\097\113\117\101 \111\098\106\101\099\116",function()local e=K.named("\102\111\111");(expect(e)).to.be.a("\117\115\101\114\100\097\116\097")end)it("\115\104\111\117\108\100 \099\111\101\114\099\101 \116\111 \116\104\101 \103\105\118\101\110 \110\097\109\101",function()local e=K.named("\102\111\111");(expect((tostring(e)):find("\102\111\111"))).to.be.ok()end)it("\115\104\111\117\108\100 \098\101 \117\110\105\113\117\101 \119\104\101\110 \099\111\110\115\116\114\117\099\116\101\100",function()local e=K.named("\097\098\099")local B=K.named("\097\098\099");(expect(e)).never.to.equal(B)end)end)end
return function()
	local Symbol = require(script.Parent.Symbol)

	describe("named", function()
		it("should give an opaque object", function()
			local symbol = Symbol.named("foo")

			expect(symbol).to.be.a("userdata")
		end)

		it("should coerce to the given name", function()
			local symbol = Symbol.named("foo")

			expect(tostring(symbol):find("foo")).to.be.ok()
		end)

		it("should be unique when constructed", function()
			local symbolA = Symbol.named("abc")
			local symbolB = Symbol.named("abc")

			expect(symbolA).never.to.equal(symbolB)
		end)
	end)
end