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}
ΠΠ°, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, Π° Π½Π΅ ΡΠΈΠΏΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. Π― Π²ΠΈΠ½Ρ @Keno (https://github.com/Keno/Cxx.jl/blob/master/src/cxxtypes.jl#L52).
Π― ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ, Π½ΠΎ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ @Keno ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ (true, false, false)
Π½Π° Tuple{Val{true}, Val{false}, Val{false}}
Π² Cxx.jl.
Π ΠΌΠΎΡ Π·Π°ΡΠΈΡΡ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅.
ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΏΠ°ΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Cxx, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΈΠΏΡ Cxx, ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π½Π°Π΄Π΅ΡΠ»ΠΈΡΡ, ΡΡΠΎ Π»ΡΠ΄ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ.
Tuple{true, false, false}
ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ (Ρ
ΠΎΡΡ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠΏΠΎΠΌ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ).
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ wontfix, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ.