String	name, Class type, Object value,	Modifiers modifiers ) throws UtilEvalError
String	name, Class type, Object value,	boolean	isFinal ) throws UtilEvalError
    public void	setTypedVariable(		String	name, Class type, Object value,	Modifiers modifiers )		throws UtilEvalError 	{		//checkVariableModifiers( name, modifiers );		if ( variables == null )			variables =	new Hashtable();		// Setting a typed variable is always a local operation.		Variable existing = getVariableImpl( name, false/*recurse*/ );		// Null value is just a declaration		// Note: we might want to keep any existing value here instead of reset	/*	// Moved to Variable		if ( value == null )			value = Primitive.getDefaultValue( type );	*/		// does the variable already exist?		if ( existing != null ) 		{			// Is it typed?			if ( existing.getType() != null ) 			{				// If it had a different type throw error.				// This allows declaring the same var again, but not with				// a different (even if assignable) type.				if ( existing.getType() != type )				{					throw new UtilEvalError( "Typed variable: "+name						+" was previously declared with type: " 						+ existing.getType() );				} else 				{					// else set it and return					existing.setValue( value, Variable.DECLARATION );					return;				}			}			// Careful here:			// else fall through to override and install the new typed version		} 		// Add the new typed var		variables.put( name, new Variable( name, type, value, modifiers ) );    }