n-ary constraint checking, can now always use assert-constraint!