julia> type Foo{N} end
julia> Foo{(true, true)}
Foo{(true,true)}
julia> typealias Bar{N} Foo{N}
Foo{N}
julia> Bar{(true, true)}
Foo{(true,true)}
julia> typealias Baz Foo{(true, true)}
Foo{(true,true)}
julia> typealias Quuz{M, N} Foo{(M, N)}
TypeError: Foo: in parameter, expected Type{T}, got Tuple{TypeVar,TypeVar}
рд╣рд╛рдВ, рдЙрдиреНрд╣реЗрдВ рдЯреБрдкрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рди рдХрд┐ рдЯреБрдкрд▓ рдкреНрд░рдХрд╛рд░ред рдореИрдВ @ рдХреЗрдиреЛ рдХреЛ рджреЛрд╖ рджреЗрддрд╛
рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреЗ рдЕрд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ Cxx.jl рдореЗрдВ @Keno рдХреЛ (true, false, false)
рд╕реЗ Tuple{Val{true}, Val{false}, Val{false}}
рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдореЗрд░реЗ рдмрдЪрд╛рд╡ рдореЗрдВ рд╡реЗ рдПрдХ рд╣реА рд╣реБрдЖ рдХрд░рддреЗ рдереЗред
рдпрд╣ рд╡реИрдз рд╣реИред рдореИрдВ рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рднреА рдЦреБрджрд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
Tuple{true, false, false}
рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рд╡реЛрдВрдЯрдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЯреБрдкрд▓реНрд╕ рдкрд░ рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред