In Julia, MyType{T, V} <: MyType{T}, so in some sense the first type argument is more "basic" than the second one. MLUInt/MLInt have arguments {N, T}, so the number of limbs is first, then the type. This is made by analogy with NTuple, for which this may be more logical, but for multi-limb integers the order may be better reversed.
Although, to be fair, it is exclusively a cosmetic change, since it is no problem to generalize the first type argument explicitly when necessary: MyType{Int, Bool} <: MyType{T, Bool} where T.
In Julia,
MyType{T, V} <: MyType{T}
, so in some sense the first type argument is more "basic" than the second one.MLUInt
/MLInt
have arguments{N, T}
, so the number of limbs is first, then the type. This is made by analogy withNTuple
, for which this may be more logical, but for multi-limb integers the order may be better reversed.Although, to be fair, it is exclusively a cosmetic change, since it is no problem to generalize the first type argument explicitly when necessary:
MyType{Int, Bool} <: MyType{T, Bool} where T
.