argument checking, was: About submatrix and its meaning



How about
foo(x,y,??x>y):= ....


so the predicate can involve all the parameters.
Note  also the possibility of extending this idea to function 
discrimination based on types or predicates

myabs(x??x>0):=x;
myabs(x??x<=0):= -x;

which brings us closer to (for example) common lisp object system, and 
incidentally to Mathematica.

RJF