function t.numberConstrainedExclusive(b,W)assert(t.number(b))assert(t.number(W))local s=t.numberMinExclusive(b)local D=t.numberMaxExclusive(W)return function(b)local W=s(b)if not W then return false end local j=D(b)if not j then return false end return true end end
--[[**
	ensures value is a number where min < value < max

	@param min The minimum to use
	@param max The maximum to use

	@returns A function that will return true iff the condition is passed
**--]]
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
