## FSharp.Data.Runtime.StructuralTypes Namespace

Types that represent the result of static type inference.

 Type Description Dummy type to represent that only one of "0" and "1" were found Will be generated as a 'bool', unless it's converted to another numerical type Dummy type to represent that only "0" was found. Will be generated as 'int', unless it's converted to Bit. Dummy type to represent that only "1" was found Will be generated as 'int', unless it's converted to Bit For heterogeneous types (types that have multiple possible forms such as differently named XML nodes or records and arrays mixed together) this type represents the number of occurrences of individual forms A property of a record has a name and type and may be optional Represents inferred structural type. A type may be either primitive type (one of those listed by primitiveTypes) or it can be collection, (named) record and heterogeneous type. We also have Null type (which is a subtype of all non-primitive types) and universal Top type. * For collection, we infer the types of different things that appear in the collection and how many times they do. * A heterogeneous type (sum type) is simply a choice containing one of multiple different possibilities Why is collection not simply a list of Heterogeneous types? If we used that we would lose information about multiplicity and so we would not be able to generate nicer types! For heterogeneous types, this represents the tag that defines the form (that is either primitive type, collection, named record etc.) Represents type information about a primitive property (used mainly in the CSV provider) This type captures the type, unit of measure and handling of missing values (if we infer that the value may be missing, we can generate option or nullable) Represents a transformation of a type