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 |
|
|