implementation of this method is slightly incosistent. I prefer else if statements so it is clear state machine and with return in each of it like this:

```
  global boolean IsEmpty( any value) 
{
if (value == nil)
  return true;
else if( is( value, string))
  return isempty( (string) value);
else if (...
   ...
else
  return false;
}
```