fix type argument
use types, since _t can now be a simple type
use correct type in applied type
determine element types of spread tuples at runtime