code: func Values(a Type) Type {
  	switch a := a.(type) {
  	case *Array:
  		var tpe Type
  		for i := range a.static {
  			tpe = Or(tpe, a.static[i])
  		}
  		return Or(tpe, a.dynamic)
  	case *Object:
  		var tpe Type
  		for _, v := range a.static {
  			tpe = Or(tpe, v.Value)
  		}
  		if a.dynamic != nil {
  			tpe = Or(tpe, a.dynamic.Value)
  		}
  		return tpe
  	case *Set:
  		return a.of
  	case Any:
  		if Compare(a, A) == 0 {
  			return A
  		}
  		var tpe Type
  		for i := range a {
  			tpe = Or(Values(a[i]), tpe)
  		}
  		return tpe
  	}
  	return nil
  }
docs: // Values returns the type of values that can be enumerated for a.