I’m trying to construct a type programmatically but failing to do so. The crux of my problem is that `UnionAll(TypeVar(:T, Integer), Union{TypeVar(:T, Integer), TypeVar(:U, Float64)})`

doesn’t return a `UnionAll`

type, and instead returns a `Union`

. I’m wondering if this is intended or a bug in Julia? If it is intended, what is the recommended way to construct this specific `UnionAll`

?

In the latest Julia nightly, this is what I get:

```
julia> UnionAll(TypeVar(:T, Integer), Union{TypeVar(:T, Integer), TypeVar(:U, Float64)}) Union{T<:Integer, U<:Float64}
```

I was expecting to get:

```
Union{T, U<:Float64} where T<:Integer
```

Here’s a screenshot of the Julia REPL where I was exploring the fields and the types of the various types involved: