Quick introduction to types in F#
Types in F# are basically categorized as two types: types in .NET BCL and types that are only available in F#. Although there are types specific to F#, these F# types can be used in C#/VB because basically all F# types are implemented on top of .NET CLR.
Based on .NET CLI standard partition I section I.8.2 about value types and reference types, the documentation is divided into two kinds of types:
Value type: The values described by a value type are self-contained (each can be understood without reference to other values). It is using one of the basic, built-in data types or a user-defined structure. The exception of this built-in type is a string; it is reference type. In F#/C#/VB, this value type is also known as a structure or struct.
Reference type: The value denotes the location of another value. The location is actually a pointer to a location of a value.
There are four kinds of reference type:
An object type is a reference type of a self-describing value...