I just noticed that the FSharp.Core namespace includes generic array types of up to 4 dimensions, i.e. Core.<'T>, Core.[,]<'T>, etc. C# and VB seem to be doing just fine with System.Array - although it's not clear to me how they manage to support strongly-typed specialized array types like int, string.
I guess this becomes two questions then:
- How does C# support strongly-typed specialized array types like int based on the non-generic System.Array?
- Given that C# manages to do this, why does F# define generic array types?