function t.numberConstrainedExclusive(m,l)assert(t.number(m))assert(t.number(l))local e=t.numberMinExclusive(m)local N=t.numberMaxExclusive(l)return function(m)local t=e(m)if not t then return false end local l=N(m)if not l then return false end return true end end

function t.numberConstrainedExclusive(min, max)
	assert(t.number(min))
	assert(t.number(max))
	local minCheck = t.numberMinExclusive(min)
	local maxCheck = t.numberMaxExclusive(max)

	return function(value)
		local minSuccess = minCheck(value)
		if not minSuccess then
			return false
		end

		local maxSuccess = maxCheck(value)
		if not maxSuccess then
			return false
		end

		return true
	end
end
