anchor.diff:  def CMethod.getter klass, attrib
   	new("get_#{attrib}", attrib, [], <<-CODE)
   		GET_#{klass.upcase}(self);
  -		return rb_float_new(self_vec->x);
  +		return rb_float_new(self_vec->#{attrib});
   	CODE
   end
   
   def CMethod.setter klass, attrib
   	new("set_#{attrib}", "#{attrib}=", ['value'], <<-CODE)
   		GET_#{klass.upcase}(self);
  -	    self_vec->x = NUM2DBL(value);
  +	    self_vec->#{attrib} = NUM2DBL(value);
   	    return value;
       CODE
   end
  
positive.code: // Abaci classes dont need a mark function because they do not contain references to other Ruby objects.
  // Currently Abaci classes are allocated off of the C++ heap.
  
  inline Vector2d* GetVector2(VALUE data)
  {
  	Vector2d* vec;
  
negative.code: 
  	CMethod.noargs_self('Vector2', 'SetZero', 'zero!'),
  
  	CMethod.get_elem('Vector2', 2),
  	CMethod.set_elem('Vector2', 2),
  
  	CMethod.set_method('Vector2', 2),
  
  	CMethod.new('dot', 'dot', ['other'], <<-CODE),
  	    GET_VECTOR2(self);
  