Since we target .NET Standard 2.0 at minimum, value tuples always exist. We should add an overload to FSharpType.MakeStructTupleType that does not take an assembly object and just uses them normally.
type FSharpType =
static member MakeStructTupleType: types: Type[] -> Type
And maybe we should deprecate the overloads that do take an assembly? They are not trimming-friendly, not unloading-friendly and redundant, unless we want to support tuples from MetadataLoadContexts.