When using type aliases to fix some type parameters, is there a difference between:

```
const MyVec1{T} = Array{T, 1}
const MyVec2{T} = Array{T, 1} where T
const MyVec3 = Array{T, 1} where T
```

Or if they’re functionally equivalent is one of them preferred? I rather like the `MyVec1`

definition as it seems most analogous to `struct Foo{T} ... end`

definitions. It also allows you to clearly specify the type parameter order:

```
julia> const RevArray1{N, T} = Array{T, N}
Array{T,N} where T where N
julia> const RevArray2{N, T} = Array{T, N} where {T, N}
Array{T,N} where N where T
julia> const RevArray3 = Array{T, N} where {T, N}
Array{T,N} where N where T
julia> const RevArray4 = Array{T, N} where {N, T}
Array{T,N} where T where N
julia> RevArray1{1, Int}
Array{Int64,1}
julia> RevArray2{1, Int}
Array{1,Int64}
julia> RevArray3{1, Int}
Array{1,Int64}
julia> RevArray4{1, Int}
Array{Int64,1}
```

Here `RevArray2`

seems problematic because the parameter orderings conflict (apparently the `where`

clause wins)