To support type elipses in certain builtin constructs (abi.decode* family and
type(...)) we introduce a simple notion of polymorphism with 2 types of type
var - a normal type-var (used for example to type `type(T) => { min: T, max:
T} where T is numeric) and a type 'elispsis' var, that corresponds to the
remaining types in a tuple or argument list.
To support type elipses in certain builtin constructs (abi.decode* family and type(...)) we introduce a simple notion of polymorphism with 2 types of type var - a normal type-var (used for example to type `type(T) => { min: T, max: T} where T is numeric) and a type 'elispsis' var, that corresponds to the remaining types in a tuple or argument list.