Skip to main content


A Field is an attribute of a Type, be it a !type declaration (aka a Tuple) or a !table (aka a Relation).


A 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).


A Type with some Primitive Fields:

App:    !type Type:        foo <: int        bar <: string?

See also#