Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Constructs atom

Concepts and relations are co-equal first-class entities. The construct atom is layered:

  • Language built-ins (lexer-level, always available): struct and enum — pure data declarations with no ontological commitment, no metatype classification, structural equality.
  • Stdlib ontological constructors (opt-in, not ambient — brought into scope via use std::core::{type, rel} or a [package].prelude entry, RFD 0038): the generic metatype type introduces ontologically-classified node-concepts (pub type Foo { … }); the generic metarel rel introduces ontologically-classified relations (pub rel R(...)). They are the no-commitment baseline, imported like any vocabulary — nothing is ambient.
  • Vocabulary classifiers (require a pub metatype / pub metarel declaration in scope — declared in this package, or imported from an external vocabulary package): metatypes like UFO’s kind, role, phase, category and metarels like mediation, material for richer ontological commitment. No vocabulary ships with the language or the stdlib — a vocabulary is an ordinary external package (e.g. a UFO package authored by the UFO authors), and an introducer that resolves to no visible declaration is refused with OE0605 / OE0606.

All four layers compile to one substrate IR. The distinction lives in the metatype/metarel calculus (Meta-calculus atom); the language itself ships only the calculus, the data-declaration shorthands, and the meta-declaration keywords.