-- Signal class

local Signal = {}
Signal.__index = Signal

function Signal.new(signal)
	return setmetatable({
		_handlerListHead = false,
		_signalType = signal
	}, Signal)
end

function Signal:Connect(fn)
	local connection = Connection.new(self, fn)

	if self._signalType == 1 and self._handlerListHead then
		connection._next = self._handlerListHead
		self._handlerListHead = connection
	else
		self._handlerListHead = connection
	end

	return connection
end
