/// <summary>
/// Parameterize t, where t is a generic parameter type such as V.
/// </summary>
internal Type parameterize(Type t)
{
bool nullable = t.isNullable();
Type nn = t.toNonNullable();
if (nn is ListType)
{
t = parameterizeListType((ListType)nn);
}
else if (nn is FuncType)
{
t = parameterizeFuncType((FuncType)nn);
}
else
{
t = doParameterize(nn);
}
return(nullable ? t.toNullable() : t);
}