def check(self, value_spec, arg_name, decorated_function):
		def raise_exception(text_spec):
			exc_text = 'Argument "%s" for function "%s" has invalid value' % (
				arg_name, Verifier.function_name(decorated_function)
			)
			exc_text += ' (%s)' % text_spec
			raise ValueError(exc_text)
		if isinstance(value_spec, (tuple, list, set)):
			for single_value in value_spec:
				if isfunction(single_value) is False:
					raise RuntimeError(
						'Invalid specification. Must be function or tuple/list/set of functions'
					)
			def check(x):
				for f in value_spec:
					if f(x) is not True:
						raise_exception(str(x))
			return check
		elif isfunction(value_spec):
			return lambda x: None if value_spec(x) is True else raise_exception(str(x))
		else:
			raise RuntimeError('Invalid specification. Must be function or tuple/list/set of functions')