code: func (v *Value) Type() (actual Type, fundamental Type, err error) {
  	if !gobool(C._g_is_value(v.native())) {
  		return actual, fundamental, errors.New("invalid GValue")
  	}
  	cActual := C._g_value_type(v.native())
  	cFundamental := C._g_value_fundamental(cActual)
  	return Type(cActual), Type(cFundamental), nil
  }
docs: // Type is a wrapper around the G_VALUE_HOLDS_GTYPE() macro and
  // the g_value_get_gtype() function.  GetType() returns TYPE_INVALID if v
  // does not hold a Type, or otherwise returns the Type of v.