Marvin, personally I think a numeric value of zero should not return .T.
for empty() becasue zero is a valid value for a numeric.
EMPTY() is not a validate test for data domain expression,
and it is not a validate test for data unknown.
For zero it must return .T., and it do this:
? EMPTY(0)
z = 0
? EMPTY(m.z)
You have confused EMPTY() with ISBLANK() ?
? EMPTY(''),ISBLANK('')
? EMPTY(0),ISBLANK(0)