minimal divide-by-zero checks.
improve handling of nulls in predicate functions. this permits polyadic user functions. eg.

        f<:;(x!z){(:2"fy);(:x.y)
2:22
;(x!z){(:2"fy);(:x.y)
        3"f3
0:
9
        'f3
0:
6