InferedType Type
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!
Union cases
| Union case | Description |
Full Usage:
Collection(order, types)
Parameters:
InferedTypeTag list
types : Map<InferedTypeTag, (InferedMultiplicity * InferedType)>
|
|
Full Usage:
Heterogeneous(types, containsOptional)
Parameters:
Map<InferedTypeTag, InferedType>
containsOptional : bool
|
|
|
|
Full Usage:
Null
|
|
|
|
Full Usage:
Record(name, fields, optional)
Parameters:
string option
fields : InferedProperty list
optional : bool
|
|
Full Usage:
Top
|
Instance members
| Instance member | Description |
|
|
Full Usage:
this.EnsuresHandlesMissingValues
Parameters:
bool
Returns: InferedType
|
|
|
|
Full Usage:
this.IsOptional
Returns: bool
|
|
Static members
| Static member | Description |
|
|
FSharp.Data