local C={add=require("\046\047\097\100\100");copy=require("\046\047\099\111\112\121");count=require("\046\047\099\111\117\110\116");delete=require("\046\047\100\101\108\101\116\101"),difference=require("\046\047\100\105\102\102\101\114\101\110\099\101"),differenceSymmetric=require("\046\047\100\105\102\102\101\114\101\110\099\101\083\121\109\109\101\116\114\105\099"),filter=require("\046\047\102\105\108\116\101\114"),fromArray=require("\046\047\102\114\111\109\065\114\114\097\121"),has=require("\046\047\104\097\115");intersection=require("\046\047\105\110\116\101\114\115\101\099\116\105\111\110"),isSubset=require("\046\047\105\115\083\117\098\115\101\116"),isSuperset=require("\046\047\105\115\083\117\112\101\114\115\101\116"),map=require("\046\047\109\097\112"),merge=require("\046\047\109\101\114\103\101");toArray=require("\046\047\116\111\065\114\114\097\121")}C.fromList=C.fromArray C.join=C.merge C.subtract=C.delete C.union=C.merge return C
--!strict
--[=[
	@class Set

	Sets are a collection of values. They are used to store unique values.
	They are essentially a dictionary, but each value is stored as a boolean.
	This means that a value can only be in a set once.

	```lua
	local set = { hello = true }

	local newSet = Add(set, "world") -- { hello = true, world = true }
	```
]=]
local set = {
	add = require("./add"),
	copy = require("./copy"),
	count = require("./count"),
	delete = require("./delete"),
	difference = require("./difference"),
	differenceSymmetric = require("./differenceSymmetric"),
	filter = require("./filter"),
	fromArray = require("./fromArray"),
	has = require("./has"),
	intersection = require("./intersection"),
	isSubset = require("./isSubset"),
	isSuperset = require("./isSuperset"),
	map = require("./map"),
	merge = require("./merge"),
	toArray = require("./toArray"),
}

set.fromList = set.fromArray
set.join = set.merge
set.subtract = set.delete
set.union = set.merge

return set
