{
public Expr evaluate(Expr[] args) throws ExprException {
assertArgCount(args, 1);
Expr a = evalArg(args[0]);
if (a instanceof ExprString) {
return new ExprDouble(2);
} else if (a instanceof ExprInteger || a instanceof ExprDouble) {
return new ExprDouble(1);
} else if (a instanceof ExprBoolean) {
return new ExprDouble(4);
} else if (a instanceof ExprArray) {
return new ExprDouble(64);
} else {
return new ExprDouble(16);
}
}