def check_arity
return true if not given? and optional?
ex = values.size == 0 ? NotGiven : Arity
(raise ex, "#{ typename })" if values.size.zero? and argument_required?) unless arity == -1
if arity >= 0
min = arity
sign = ''
else
min = arity.abs - 1
sign = '-'
end
arity = min
if values.size < arity
if argument_optional?
raise ex, "#{ typename }) #{ values.size }/#{ sign }#{ arity }" if(values.size < arity and values.size > 0)
elsif argument_required? or argument_none?
raise ex, "#{ typename }) #{ values.size }/#{ sign }#{ arity }" if(values.size < arity)
end
end
end