Next: Set (accumulative), Previous: Map, Up: Types reference
A record over n features, where each of these features consists of a field field_i and a value term_i of type type_i (1<=i<=n). We call the set of fields of a record its arity.
For each field field_i in the arity of the record, its value is the top value of the corresponding type type_i.
For each field field_i in the arity of the record, its value is the bottom value of the corresponding type type_i.
Recursively, the greatest lower bound of two records A and B is the record where the value of each field field_i is the result of the greatest lower bound of the value at field_i in record A, and the value field_i in record B.
Notice that you can also use the greatest lower bound operation (conjunction) on the features in a record specification. The conjunction of two features field_1:term_1 and field_2:term_2 is defined as:
Here is an example record type definition with three fields in its
arity (field_1
, field_2
and field_3
). These have
types ref("type_1")
, ref("type_2")
and
ref("type_3")
, respectively:
deftype "record" {field_1: ref("type_1") field_2: ref("type_2") field_3: ref("type_3")}