code: func (t EnumType) Equal(u convert.Equaler) bool {
  	other, ok := u.(EnumType)
  	if !ok {
  		return false
  	}
  	if !convert.CascadeEqual(t.SimpleType, other.SimpleType) {
  		return false
  	}
  	if !convert.CascadeEqual(t.BaseType, other.BaseType) {
  		return false
  	}
  	if !t.RewritableValues {
  		if !reflect.DeepEqual(t.Values, other.Values) {
  			return false
  		}
  	}
  	if !reflect.DeepEqual(t.DefaultValue, other.DefaultValue) {
  		return false
  	}
  	return true
  }
docs: // Equal returns true if two EnumType objects are equal; otherwise false is returned.