@Override
	public ValueType returnedType(ValueType... types) throws EvalException {
		// we want only two operands
		if (types.length != 1)
			throw new EvalException("Error: wrong number of operands");

		if (types[0] == ValueType.BOOLEAN)
			return (ValueType.BOOLEAN);

		if (types[0] == ValueType.INTEGER)
			return (ValueType.INTEGER);

		if (types[0] == ValueType.LONG)
			return (ValueType.LONG);

		if (types[0] == ValueType.ARRAY)
			return (ValueType.ARRAY);

		throw new EvalException(this.name()
				+ " Operands error! Type is incorrect !");
	}