function Signal.Connect(i,Q)if not(type(Q)=="\102\117\110\099\116\105\111\110")then error(("\099\111\110\110\101\099\116\040\037\115\041"):format(typeof(Q)),2)end return i._bindableEvent.Event:Connect(function(N)local B=i._argMap[N]if B then Q(table.unpack(B,1,B.n))else error("\077\105\115\115\105\110\103 \097\114\103 \100\097\116\097\044 \112\114\111\098\097\098\108\121 \100\117\101 \116\111 \114\101\101\110\116\114\097\110\099\101\046")end end)end
--[=[
	Connect a new handler to the event. Returns a connection object that can be disconnected.
	@param handler (... T) -> () -- Function handler called when `:Fire(...)` is called
	@return RBXScriptConnection
]=]
function Signal:Connect(handler)
	if not (type(handler) == "function") then
		error(("connect(%s)"):format(typeof(handler)), 2)
	end

	return self._bindableEvent.Event:Connect(function(key)
		-- note we could queue multiple events here, but we'll do this just as Roblox events expect
		-- to behave.

		local args = self._argMap[key]
		if args then
			handler(table.unpack(args, 1, args.n))
		else
			error("Missing arg data, probably due to reentrance.")
		end
	end)
end
