Field
A Field is an attribute of a Type, be it a !type
declaration (aka a Tuple
) or a !table
(aka a Relation
).
#
SyntaxA Field is nested inside a Type definition. It is comprised of a name Identifier, the "element of" operator (<:
), and a Type definition. The Type is usually a Primitive or a reference to a Type, but it can also be an inline definition of a new Type.
If the Type definition ends with a question mark (?
), the Field's Type is nullable (by default all Types are presumed to be non-nullable).
#
ExampleA Type with some Primitive Fields:
App: !type Type: foo <: int bar <: string?