A discussion earlier today led me to question whether or not my understanding of primtives and literals is correct.
My understanding is that a literal type is spec
Here is an MSDN page, talking about the CLS, that includes string as a primitive type:
The .NET Framework class library includes types that correspond to the primitive data types that compilers use. Of these types, the following are CLS-compliant: Byte, Int16, Int32, Int64, Single, Double, Boolean, Char, Decimal, IntPtr, and String. For more information about these types, see the table of types in .NET Framework Class Library Overview.